简称为 inode,用来记录文件的元数据,比如 inode 编号、文件大小、访问权限、修改日期、数据的位置等。索引节点和文件一一对应,它跟文件内容一样,都会被持久化存储到磁盘中。所以记住,索引节点同样占用磁盘空间。
简称为 dentry,用来记录文件的名字、索引节点指针以及与其他目录项的关联关系。多个关联的目录项,就构成了文件系统的目录结构。不过,不同于索引节点,目录项是由内核维护的一个内存数据结构,所以通常也被叫做目录项缓存。
索引节点是每个文件的唯一标志,而目录项维护的正是文件系统的树状结构。目录项和索引节点的关系是多对一
我们知道,在启动docker容器的时候,可以通过添加--cpu-quota
, --memory
来限制容器的cpu和内存使用,如果对每个容器都要设置限制,那就需要为在启动时添加这个。这样很是麻烦,有时候不需要限制每个容器,但需要确保所有在主机上运行的容器不能超过宿主机资源的80%, 这样做可以避免因为容器进程导致宿主机资源不够使用从而产生宕机事件。
aws的云产品(ec2,elb,redis,rds)的监控需要一个一个的添加,比较耗时耗力。本着偷懒的精神要实现在产品创建后,自动的创建产品对应的监控项和监控面板。
OpenSSH 是使用 SSH 透过计算机网络加密通信的实现。它是取代由 SSH Communications Security 所提供的商用版本的开放源代码方案。当前 OpenSSH 是 OpenBSD 的子项目。
低版本有些漏洞,所以要升级。
在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。这个包广泛被应用在互联网的网页服务器上。 其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。
低版本有些漏洞,并且openssh,nginx 的 http2 都需要新版本,所以要升级版本。
众所周知,运维很大的一部分时间都在安装软件,需要我们不停的重建测试环境而应对我们的部署流程。为了省下重建环境所需要的繁琐流程,我们可以使用虚拟化的快照功能,这样我们就可以快速的恢复已定义好的环境信息。如果说集群需要很多个机器,比如像 kubernetes 高可用集群,至少需要5台虚拟机才能搭建起来,我们按照恢复快照的方式进行一个一个的恢复,耗时不说,这也算是重复劳动力呀。所以,本人比较懒,想把这部分的时间也省下来。也就有了打造高效的运维测试环境这一文。
简而言之, 高效运维测试环境的需求就是:
使用ansible的role方式进行自动化安装rabbitmq单实例和集群。
从3.8.0版开始,RabbitMQ附带了内置的Prometheus&Grafana支持。3.8之前的RabbitMQ版本可以使用单独的插件 prometheus_rabbitmq_exporter
来向Prometheus公开指标。
只需开启rabbitmq_prometheus
插件,就可以启用prometheus的metrics接口,默认端口为15692
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sed -i 's#download.docker.com#mirrors.ustc.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce bash-completion
cp /usr/share/bash-completion/completions/docker /etc/bash_completion.d/
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 64000,
"Soft": 64000
}
},
"live-restore": true,
"max-concurrent-downloads": 10,
"max-concurrent-uploads": 10,
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn/"
]
}
EOF
systemctl enable --now docker
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
AMQP,即Advanced message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
官网: https://www.rabbitmq.com