一、前期准備
1.1、主機規划
| IP | 系統 | 主機名 | 描述 |
|---|---|---|---|
| 192.168.80.37 | CentOS7.6 | ceph01 | admin-node,mon-node1,osd1 |
| 192.168.80.47 | CentOS7.6 | ceph02 | mon-node2,osd2 |
| 192.168.80.57 | CentOS7.6 | ceph03 | osd3 |
1.2、修改主機名
按主機規划設備各主機的主機名,並在 /etc/hosts 文件中添加解析配置
#修改主機名
hostnamectl set-hostname ceph01
exec bash
#修改/etc/hosts,添加以下配置
vim /etc/hosts
192.168.80.37 ceph01
192.168.80.47 ceph02
192.168.80.57 ceph03
1.3、關閉防火牆
# 停止
systemctl stop firewalld.service
# 禁用
systemctl disable firewalld.service
1.4、關閉SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
1.5、配置yum源
cd /etc/yum.repos.d/
mkdir bak && mv *.repo bak/
#下載aliyun的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
1.6、設置時間同步
# 設置時區
timedatectl set-timezone Asia/Shanghai
# 同步時間
yum install -y ntpdate
ntpdate time1.aliyun.com
1.7、創建免密鑰登錄
#在ceph01節點上執行
ssh-keygen
ssh-copy-id root@ceph01
ssh-copy-id root@ceph02
ssh-copy-id root@ceph03
二、ceph集群搭建
2.1、配置ceph源
vim /etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for
[ceph]
name=Ceph packages for
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
2.2、安裝ceph-deploy和ceph
#在ceph01節點上執行
yum install -y ceph-deploy ceph python-setuptools
#在ceph02和ceph03節點上執行
yum install -y ceph python-setuptools
2.3、創建集群
(1) 在管理節點admin-node(ceph01)上創建mon並初始化,收集秘鑰
#進行配置文件目錄
cd /etc/ceph
#創建mon
ceph-deploy new ceph01 ceph02
#初始化mon
ceph-deploy mon create-initial
#查看集群狀態
ceph -s
(2) 在管理節點admin-node(ceph01)上創建osd
#創建osd
ceph-deploy osd create --data /dev/sdb ceph01
ceph-deploy osd create --data /dev/sdb ceph02
ceph-deploy osd create --data /dev/sdb ceph03
#查看集群狀態
ceph -s
#查看osd狀態
ceph osd stat
#查看osd目錄樹
ceph osd tree
(3) 在管理節點admin-node(ceph01)上,將配置文件和admin秘鑰下發到節點,並給秘鑰增加權限
#在ceph01節點上執行
ceph-deploy admin ceph01 ceph02 ceph03
#在ceph01、ceph02、ceph03節點上執行(/etc/ceph目錄下)
chmod +r ceph.client.admin.keyring
#查看集群狀態
ceph -s
2.4、創建mgr網關
#在ceph01節點上執行
cd /etc/ceph
ceph-deploy gatherkeys ceph01 ceph02 ceph03
ceph-deploy mgr create ceph01 ceph02 ceph03
#查看集群健康狀態
ceph health
#安裝octopus版本時還需要裝以下模塊
pip3 install pecan werkzeug
2.5、創建mds和pool
#以下操作均在ceph01節點上執行
#創建mds
ceph-deploy mds create ceph01 ceph02 ceph03
#創建存儲池
ceph osd pool create cephfs_data 120
ceph osd pool create cephfs_metadata 120
#創建文件系統
ceph fs new cephfs cephfs_metadata cephfs_data
#查看文件系統
ceph fs ls
#查看mds節點狀態
ceph mds stat
#常用命令
ceph osd pool get [存儲池名稱] size #查看存儲池副本數
ceph osd pool set [存儲池名稱] size 3 #修改存儲池副本數
ceph osd lspools #打印存儲池列表
ceph osd pool create [存儲池名稱] [pg_num的取值] #創建存儲池
ceph osd pool rename [舊的存儲池名稱] [新的存儲池名稱] #存儲池重命名
ceph osd pool get [存儲池名稱] pg_num #查看存儲池的pg_num
ceph osd pool get [存儲池名稱] pgp_num #查看存儲池的pgp_num
ceph osd pool set [存儲池名稱] pg_num [pg_num的取值] #修改存儲池的pg_num值
ceph osd pool set [存儲池名稱] pgp_num [pgp_num的取值] #修改存儲池的pgp_num值
2.6、客戶端掛載
(1) 內核驅動掛載
#安裝依賴
yum install -y ceph-common
#創建掛載點
mkdir /mnt/cephfs
#獲取存儲密鑰,管理節點執行
ceph auth get-key client.admin
#或從文件中獲取
cat /etc/ceph/ceph.client.admin.keyring
#直接掛載
mount -t ceph 192.168.80.37:6789:/ /mnt/cephfs -o name=admin,secret=AQBkMoJge6sUAxAAg2s7u+s4p3wDDQNNx0TP9Q==
#建議將密鑰保存到文件中然后再掛載
echo 'AQBkMoJge6sUAxAAg2s7u+s4p3wDDQNNx0TP9Q==' > /etc/ceph/admin.secret
mount -t ceph 192.168.80.37:6789:/ /mnt/cephfs -o name=admin,secretfile=/etc/ceph/admin.secret
#卸載
umount /mnt/cephfs/
(2) 用戶控件掛載
#安裝依賴
yum install -y ceph-fuse
#掛載
ceph-fuse -m 192.168.80.37:6789 /mnt/cephfs
#卸載
fusermount -u /mnt/cephfs
2.7、擴容操作
假如有一個新的ceph04節點(提前安裝好相關包,類似於ceph02節點)要加入集群,並且需要擴容mon和osd
(1) 擴容mon
#在ceph01節點上執行,修改ceph.conf文件
cd /etc/ceph
vim ceph.conf
[global]
fsid = 4ed770bf-5768-4ba5-b04f-f96a63bb98c9
mon_initial_members = ceph01, ceph02, ceph04 #添加ceph04
mon_host = 192.168.80.37,192.168.80.47,192.168.80.67 #添加ceph04的IP地址'
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
public network = 192.168.80.0/24 #添加內部通信網段
#重新下發配置文件
ceph-deploy --overwrite-conf config push ceph01 ceph02 ceph03
#添加mon
ceph-deploy mon add ceph04
#查看集群狀態
ceph -s
(2) 擴容osd
ceph-deploy osd create --data /dev/sdb ceph04
