多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 事前准备 以下操作在所有 Ceph 节点上进行操作。 ## 升级内核 ### 安装依赖包 #### Perl 需要安装 Perl,Perl 是内核的依赖包。 ```bash $ [ ! -f /usr/bin/perl ] && yum install perl -y ``` ### 安装内核 > 以下两种安装方式选择其一即可。 #### 方式一:使用 Yum 安装 1) 导入 elrepo 的 key 并安装 elrepo yum 源,升级内核需要使用 elrepo 的 yum 源。 ```bash # 导入 elrepo key $ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # 安装 elrepo yum 源 $ rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm ``` 2)查看可用内核。 ```bash $ yum --disablerepo="*" --enablerepo="elrepo-kernel" list available --showduplicates Available Packages ... kernel-ml.x86_64 4.19.9-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 4.19.10-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 4.19.9-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 4.19.10-1.el7.elrepo elrepo-kernel ... ``` 3)从可用内核中选择版本安装。 ```bash # 指定内核版本,该版本必须在可用内核列表中存在 $ export kernel_version=4.19.10-1 # 安装内核 $ yum --disablerepo="*" --enablerepo=elrepo-kernel install -y kernel-ml{,-devel}-${kernel_version}.el7.elrepo.x86_64 ``` #### 方式二:自选内核版本安装 通过以下链接找到想要安装的内核版本。 REHL 7:[REHL 7 内核版本库](http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/) 安装自选版本的内核。 ```bash # 指定内核版本 $ export kernel_version=4.18.9-1 # 下载该版本内核 $ wget http://mirror.rc.usf.edu/compute_lock/elrepo/kernel/el7/x86_64/RPMS/kernel-ml{,-devel}-${kernel_vsersion}.el7.elrepo.x86_64.rpm # 安装下载的内核 $ yum localinstall -y kernel-ml* ``` ### 修改内核启动顺序 1)查看当前内核启动顺序。 ```bash $ grubby --default-kernel /boot/vmlinuz-3.10.0-862.el7.x86_64 ``` 2)当前默认启动的内核为 3.10.0 ,修改为新版本内核。如果开机需要手动选择内核,此步骤可以忽略。 ```bash # 把当前内核启动顺序改为 0,并写入配置文件 $ grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg # 检查默认启动内核是否为新版本内核 $ grubby --default-kernel /boot/vmlinuz-4.18.9-1.el7.elrepo.x86_64 ``` ​3)如果需要安装 Docker 并使用 Docker 运行服务,根据官方内核检查脚本建议,开启 `user_namespace` 功能。如果不需要安装 Docker,此步骤可以省略。 ```bash $ grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)" ``` 4)重启系统,检查内核是否正常。 ```bash $ reboot # 启动之后检查内核版本 $ uname -r 4.18.9-1.el7.elrepo.x86_64 ``` ## 添加 HOSTS 映射 在 /etc/hosts 文件中添加对各个节点的映射。 ```bash $ cat << EOF >> /etc/hosts > > # Ceph cluster node > 10.10.113.15 ceph-node1 > 10.10.113.16 ceph-node2 > 10.10.113.17 ceph-node3 > EOF ``` ## 防火墙配置 > 以下两种方式选择其一即可。 #### 方式一:永久关闭防火墙 ```bash $ systemctl disable --now firewalld ``` #### 方式二:配置防火墙开放端口 如果开启了防火墙,则需要开放 Ceph Monitor 使用的 6379 端口和 OSD 使用的 6800:7300 端口范围。 ```bash $ firewall-cmd --zone=public --add-port=6789/tcp --permanent $ firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent $ firewall-cmd --reload # 检查防火墙端口是否已经开放 $ firewall-cmd --zone=public --list-all public (active) target: default icmp-block-inversion: no interfaces: ens192 sources: services: ssh dhcpv6-client ports: 6789/tcp 6800-7300/tcp ... ``` ## SELINUX 配置 禁用 SELiunx。 ```bash # 临时禁用 SELinux $ setenforce 0 # 永久禁用 SELinux $ sed -ri '/^[^#]*SELINUX=/s#=.+$#=disabled#' /etc/selinux/config ``` ## NTP 服务 Ceph 所有节点时间必须相同 (特别是 Ceph Monitor 节点),如果有需要可以使用 NTP 服务同步系统时间。 ```bash $ yum install -y ntp ntpdate ntp-doc ``` 确保在各 Ceph 节点上启动了 NTP 服务,并且要使用同一个 NTP 服务器,可以参考 [NTP](http://www.ntp.org/)。 ## 更新 YUM 版本库 可以更新 Yum 库,降低出现漏洞的可能性。 ```bash $ yum update -y ``` ## 创建部署管理 CEPH 用户 Ceph 管理工具(ceph-deploy)必须以普通用户登录 Ceph 节点,且此用户必须拥有无密码的 sudo 权限。因为 Ceph 节点在安装软件以及配置文件在管理节点上进行,不会提示输出密码。 建议在集群内所有 Ceph 节点上为 Ceph 管理工具创建一个特定的用户。 **但不要使用 “ceph” 这个用户名**。因为用户名 “ceph” 保留给了 Ceph 守护进程。 **也不要使用常用的用户名**。因为黑客可能会用它做暴力破解(如 root、admin、ceph-deploy 等)。 按照以下步骤创建普通用户并分配 sudo 权限。 1)创建新用户。 ```bash $ useradd -d /home/ceph-operation -m ceph-operation $ passwd ceph-operation ``` 2)为此用户配置无密码的 sudo 权限。 ```bash $ echo "ceph-operation ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/ceph-operation $ chmod 0440 /etc/sudoers.d/ceph-operation ```