
00.ceph-deploy初始化集群
1.集群部署规划
- Ceph-deploy
ceph集群部署节点,负责集群整体部署,这里复用node1节点,也可以单独找一台服务器作为部署节点
- Monitor
ceph 监视管理节点,承担ceph集群重要的管理任务,负责集群状态维护,例如存储池副本数,PG状态,OSD数量等,至少部署1个,一般需要3或5个节点组建高可用
- osd
ceph存储节点,实际负责数据存储的节点,集群中至少有3个osd,不少于默认副本数,每个osd对应一块硬盘
服务器角色
主机名 操作系统 内网IP 裸盘 角色 ceph-node01 7.9.2009 192.168.6.141 sda/sdb/sdc ceph-deploy mon1 ose2 ceph-node02 7.9.2009 192.168.6.171 sda/sdb/sdc mon1 ose2 ceph-node03 7.9.2009 192.168.6.212 sda/sdb/sdc mon1 ose2
2.操作系统初始化
主机
# cat ceph.host 192.168.6.141 192.168.6.171 192.168.6.212关闭防火墙
# pssh -h ceph.host -i sudo -b systemctl disable firewalld --now关闭selinux
# pssh -h ceph.host -i sudo -b setenforce 0 # pssh -h ceph.host -i sudo -b sed -i 's/enforcing/disabled/g' /etc/selinux/config关闭swap
# pssh -h ceph.host -i sudo -b swapoff -a # pssh -h ceph.host -i sudo -b sed -ri 's/.*swap*/#&/' /etc/fstab重置主机名
# hostnamectl set-hostname在master机器上添加hosts
# cat >> /etc/hosts << EOF ceph-node01 192.168.6.141 ceph-node02 192.168.6.171 ceph-node03 192.168.6.212 EOf优化系统
# echo "ulimit -SHn 102400" >> /etc/rc.local # cat >> /etc/security/limits.conf << EOF * soft nofile 65535 * hard nofile 65535 EOF # yum install ntpdate -y # ntpdate time.windows.com配置免密
#ssh-copy-id -i ~/.ssh/id_rsa.pub
3.ceph-deploy集群部署
1.配置yum源
vi /etc/yum.repos.d/ceph.repo [ceph] name=Ceph packages for $basearch baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/$basearch enabled=1 priority=2 gpgcheck=0 gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc [ceph-noarch] name=Ceph noarch packages baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch enabled=1 priority=2 gpgcheck=0 gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc [ceph-source] name=Ceph source packages baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS enabled=0 priority=2 gpgcheck=0 gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc2.安装ceph-deploy工具
yum install -y ceph-deploy python2-pip3.创建集群
# 在ceph-node01上执行以下命令 mkdir my-cluster cd my-cluster # 创建一个ceph集群 ceph-deploy new ceph-node01 ceph-node02 ceph-node03 [root@ceph-node01 my-cluster]# ls ceph.conf ceph-deploy-ceph.log ceph.mon.keyring4.安装ceph
# 在ceph-node01上执行以下命令 ceph-deploy install ceph-node01 ceph-node02 ceph-node03 --no-adjust-repos --no-adjust-repos 使用本地yum源5.部署monitor服务
# 初始化并部署monitor,收集所有密钥 ceph-deploy mon create-initial # 使用ceph-deploy命令将配置文件和admin key复制到管理节点和ceph节点,以便每次执行ceph CLI命令无需制定monitor地址和ceph.client.admin.keying ceph-deploy admin ceph-node01 ceph-node02 ceph-node036.部署osd服务并添加硬盘
# 如果是使用过的旧盘,先执行如下命令,清空磁盘中的内容 wipefs -af /dev/sdx # 创建6个OSD,分别对应每个节点未使用的硬盘 ceph-deploy osd create --data /dev/sdb ceph-node01 ceph-deploy osd create --data /dev/sdc ceph-node01 ceph-deploy osd create --data /dev/sdb ceph-node02 ceph-deploy osd create --data /dev/sdc ceph-node02 ceph-deploy osd create --data /dev/sdb ceph-node03 ceph-deploy osd create --data /dev/sdc ceph-node037.部署MGR服务
ceph-deploy mgr create ceph-node01 ceph-node02 ceph-node03注意:
MGR是ceph L版本新增加的组件,主要作用是分担和扩展monitor的部分功能,减轻monitor的负担
建议每台monitor节点都部署一个mgr,以实现相同级别的高可用
8.禁用不安全模式
[root@ceph_03 ~]# ceph config set mon auth_allow_insecure_global_id_reclaim false [root@ceph_03 ~]# ceph -s
4.ceph集群服务管理
1.启动所有守护进程
systemctl restart ceph.target2.按类型启动守护进程
systemctl restart ceph-osd@id systemctl restart ceph-mon.target systemctl restart ceph-mds.target systemctl restart ceph-mgr.target
5.常用命令
查看ceph集群状态
ceph -s查看ceph版本
ceph -vPG状态
ceph pg statPool状态
# 查看存储池 ceph osd pool ls ceph osd pool ls detailOSD状态
ceph osd stat # OSD详情 ceph osd dump # OSD分布 ceph osd tree # OSD使用 ceph osd dfMonitor状态
ceph mon stat # 仲裁状态 ceph quorum status集群空间用量
ceph df