本文并非关于Ceph的系统介绍,没有对Ceph原理等知识的介绍,基本都是操作命令。内容参考自Ceph官方文档,以及《Ceph Cookbook》。
本文内容在CentOS7上进行过几次成功的部署,没坑,所部署的Ceph版本为nautilus,部署工具为ceph-deploy。
0 准备工作
0.1 安装ceph-deploy
以下方法二选一。
0.1.1 直接安装ceph-deploy
包
可以到国内的源中查找rpm包直接安装,比如阿里云:
rpm -Uvh https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/ceph-deploy-2.0.1-0.noarch.rpm
yum install -y epel-release python-setuptools
0.1.2 基于repo来安装
# 命令来自官方文档
sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
创建一个软件库配置文件。
sudo vim /etc/yum.repos.d/ceph.repo
内容如下:
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=1
priority=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
ceph-deploy
是在noarch
下的,所以先添加这个即可。然后就可以安装ceph-deploy
了。
sudo yum install ceph-deploy python-setuptools
0.2 Ceph节点配置
0.2.1 安装chrony
sudo yum install -y chrony
mv /etc/chrony.conf /etc/chrony.conf.bak
cat > /etc/chrony.conf <<EOF
server ntp.aliyun.com iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
logchange 0.5
logdir /var/log/chrony
EOF
systemctl enable chronyd
systemctl restart chronyd
0.2.2 创建Ceph用户(可选)
在各 Ceph 节点创建新用户。
ssh user@ceph-server
sudo useradd -d /home/{
username} -m {
username}
sudo passwd {
username}
确保各 Ceph 节点上新创建的用户都有 sudo 权限。
echo "{username} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/{
username}
sudo chmod 0440 /etc/sudoers.d/{
username}
0.2.3 SSH配置
安装SSH服务器:
sudo yum install openssh-server
配置ceph-deploy
到ceph各节点的SSH免密登录:
# 生成密钥对
ssh-kengen
# 配置免密登录
ssh-copy-id {
username}@node1
ssh-copy-id {
username}@node2
ssh-copy-id {
username}@node3
如果使用非root
用户进行部署,那么推荐修改~/.ssh/config
文件,
Host node1
Hostname node1
User {username}
Host node2
Hostname node2
User {username}
Host node3
Hostname node3
User {username}
0.2.4 开放端口
MON默认使用3300
和6789
端口,OSD默认使用6800-7300
端口,RGW使用7480端口。