ceph集群搭建

#生产最好使用2个ip段

#系统
Ubuntu 20.04.3 
#192.168.10.20x集群通讯事业
#192.168.10.10x客户端和各种应用使用
192.168.10.200/192.168.10.100 ceph-deploy
192.168.10.201/192.168.10.101 ceph-mgr1-ceph-rgw1
192.168.10.202/192.168.10.102 ceph-mgr2-ceph-rgw2
192.168.10.203/192.168.10.103 ceph-mon1-ceph-mds1-node1
192.168.10.204/192.168.10.104 ceph-mon2-ceph-mds2-node2
192.168.10.205/192.168.10.105 ceph-mon3-ceph-mds3-node3
系统基础优化

#配置root远程登录
vim /etc/ssh/sshd_config
PermitRootLogin yes
UseDNS no
#重启sshd
systemctl restart sshd.service

#所有节点配置hosts
cat > /etc/hosts <<'EOF'
127.0.0.1 localhost
127.0.1.1 t

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

192.168.10.200 ceph-deploy1
192.168.10.201 ceph-mgr1-ceph-rgw1
192.168.10.202 ceph-mgr2-ceph-rgw2
192.168.10.203 ceph-mon1-ceph-mds1-node1
192.168.10.204 ceph-mon2-ceph-mds2-node2
192.168.10.205 ceph-mon3-ceph-mds3-node3
EOF

#配置apt源这里使用ustc源
cat >/etc/apt/sources.list<<'EOF'
deb http://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse

## Not recommended
# deb http://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
EOF
#更新镜像源和校验安装包
wget -q -O- 'http://mirrors.ustc.edu.cn/ceph/keys/release.asc' | sudo apt-key add -
echo deb http://mirrors.ustc.edu.cn/ceph/debian-pacific/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
apt-get update
apt update


#时间同步
apt install cron -y
systemctl status cron.service  
echo "*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com &> /dev/null && hwclock -w" >> /var/spool/cron/crontabs/root
/usr/sbin/ntpdate time1.aliyun.com &> /dev/null && hwclock -w
rm -rf /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cat >> /etc/default/locale << 'EOF'
LANG=en_US.UTF-8
LC_TIME=en_DK.UTF-8
EOF

#安装常用系统命令:
apt install iproute2  ntpdate  tcpdump telnet traceroute nfs-kernel-server nfs-common  lrzsz tree  openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev gcc openssh-server iotop unzip zip  apt-transport-https ca-certificates curl software-properties-common vim-common inetutils-ping -y



#所有节点的内核配置
cat > /etc/sysctl.conf <<'EOF'
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
net.ipv4.ip_nonlocal_bind = 1
net.ipv4.ip_forward = 1
   
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
   
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
   
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded
applications. kernel.core_uses_pid = 1
   
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
   
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
   
# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536
   
# # Controls the maximum size of a message, in bytes
kernel.msgmax = 65536
   
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
   
# # Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
   
# TCP kernel paramater
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.tcp_rmem = 4096        87380   4194304
net.ipv4.tcp_wmem = 4096        16384   4194304 n
et.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
   
# socket buffer
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 20480
net.core.optmem_max = 81920
   
# TCP conn
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15
   
# tcp conn reuse
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 1
   
   
net.ipv4.tcp_max_tw_buckets = 20000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syncookies = 1
   
# keepalive conn
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.ip_local_port_range = 10001    65000
   
# swap
vm.overcommit_memory = 0
vm.swappiness = 10
   
#net.ipv4.conf.eth1.rp_filter = 0
#net.ipv4.conf.lo.arp_ignore = 1
#net.ipv4.conf.lo.arp_announce = 2
#net.ipv4.conf.all.arp_ignore = 1
#net.ipv4.conf.all.arp_announce = 2
EOF

#所有节点的文件权限配置
cat > /etc/security/limits.conf <<'EOF'
root                soft    core            unlimited
root                hard    core            unlimited
root                soft    nproc           1000000
root                hard    nproc           1000000
root                soft    nofile          1000000
root                hard    nofile          1000000
root                soft    memlock         32000
root                hard    memlock         32000
root                soft    msgqueue        8192000
root                hard    msgqueue        8192000
   
  
*                soft    core            unlimited
*                hard    core            unlimited
*                soft    nproc           1000000
*                hard    nproc           1000000
*                soft    nofile          1000000
*                hard    nofile          1000000
*                soft    memlock         32000
*                hard    memlock         32000
*                soft    msgqueue        8192000
*                hard    msgqueue        8192000
EOF

#所有节点安装python2.7
apt install python2.7 -y && ln -sv /usr/bin/python2.7 /usr/bin/python2


#所有节点创建ceph用户,并允许ceph 用户以 执行特权命令:
#推荐使用指定的普通用户部署和运行ceph 集群,普通用户只要能以非交互方式执行命令执行一些特权命令即可,新版的ceph-deploy 可以指定包含root的在内只要可以执行命令的用户,
#不过仍然推荐使用普通用户,比如ceph、cephuser、cephadmin 这样的用户去管理ceph 集群
#这里使用cephadmin用户
groupadd -r -g 2022 cephadmin && useradd -r -m -s /bin/bash -u 2022 -g 2022 cephadmin && echo cephadmin:qwe123 | chpasswd

#允许用户以特权身份执行命令
echo "cephadmin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

关闭swap
swapoff -a
  
vim /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during curtin installation
/dev/disk/by-uuid/d70a7e92-2d0d-4014-a9a1-4cd95db5e242 / xfs defaults 0 0
#/swap.img      none    swap    sw      0       0

#快速配置主机名
hostname ceph-deploy && sed -i "s#t#ceph-deploy#g" /etc/hostname
hostname ceph-mgr1-ceph-rgw1 && sed -i "s#t#ceph-mgr1-ceph-rgw1#g" /etc/hostname
hostname ceph-mgr2-ceph-rgw2 && sed -i "s#t#ceph-mgr2-ceph-rgw2#g" /etc/hostname
hostname ceph-mon1-ceph-mds1-node1 && sed -i "s#t#ceph-mon1-ceph-mds1-node1#g" /etc/hostname
hostname ceph-mon2-ceph-mds2-node2 && sed -i "s#t#ceph-mon2-ceph-mds2-node2#g" /etc/hostname
hostname ceph-mon3-ceph-mds3-node3 && sed -i "s#t#ceph-mon3-ceph-mds3-node3#g" /etc/hostname

#快速配置ip
sed -i "s#200#201#g" /etc/netplan/00-installer-config.yaml && sed -i "s#100#101#g" /etc/netplan/00-installer-config.yaml && netplan apply && ip a
sed -i "s#200#202#g" /etc/netplan/00-installer-config.yaml && sed -i "s#100#102#g" /etc/netplan/00-installer-config.yaml && netplan apply && ip a
sed -i "s#200#203#g" /etc/netplan/00-installer-config.yaml && sed -i "s#100#103#g" /etc/netplan/00-installer-config.yaml && netplan apply && ip a
sed -i "s#200#204#g" /etc/netplan/00-installer-config.yaml && sed -i "s#100#104#g" /etc/netplan/00-installer-config.yaml && netplan apply && ip a
sed -i "s#200#205#g" /etc/netplan/00-installer-config.yaml && sed -i "s#100#105#g" /etc/netplan/00-installer-config.yaml && netplan apply && ip a

 

开始安装集群

#ceph-deploy执行切换到cephadmin创建key
cephadmin@ceph-deploy:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/cephadmin/.ssh/id_rsa): 
Created directory '/home/cephadmin/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/cephadmin/.ssh/id_rsa
Your public key has been saved in /home/cephadmin/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:kkB54FFimEU/mCw0DxOm6SFwCjjRMQVq+/b3zDOdH5I cephadmin@ceph-deploy
The key's randomart image is:
+---[RSA 3072]----+
|=o%XX+.          |
|=O+@.*.          |
|*+. B.o          |
|+ o. . o         |
| o    o S        |
|  .    .    .    |
|   o      .E..   |
|  . .  .oo o. .  |
|     .. .+o ..   |
+----[SHA256]-----+



#安装sshpass
cephadmin@ceph-deploy:~$ sudo apt install sshpass


#ceph-deploy节点使用cephadmin用户分发密钥脚本
cat >ssh-scp.sh<<'EOF'
#!/bin/bash
#目标主机列表
IP="
192.168.10.201
192.168.10.202
192.168.10.203
192.168.10.204
192.168.10.205
"
for node in ${IP};do
    sshpass -p "qwe123" ssh-copy-id -i /home/cephadmin/.ssh/id_rsa.pub -o StrictHostKeyChecking=no cephadmin@${node} &> /dev/null
   if [ $? -eq 0 ];then
     echo "${node} 秘钥copy完成"
   else
     echo "${node} 秘钥copy失败"
   fi
done
EOF
  
#在ceph-deploy节点部署ceph-deploy工具包
#查看可以安装的版本
sudo apt-cache madison ceph-deploy

#执行安装命令
sudo apt install ceph-deploy=2.0.1-0ubuntu1.1


#初始化mon节点
#保存当前集群的初始化配置信息
mkdir ceph-cluster  && cd ceph-cluster/

#初始化
#--cluster-network  内部ceph服务器使用的,集群的管理,数据同步使用的网络#192.168.10.20x集群通讯事业
#--public-network   客户端使用的网络,就是应用程序使用的#192.168.10.10x客户端和各种应用使用
ceph-deploy new --cluster-network 192.168.10.0/24 --public-network 192.168.10.0/24  ceph-mon1-ceph-mds1-node1
ceph-deploy new --cluster-network 192.168.10.0/24 --public-network 192.168.10.0/24  ceph-mon2-ceph-mds2-node2
ceph-deploy new --cluster-network 192.168.10.0/24 --public-network 192.168.10.0/24  ceph-mon3-ceph-mds3-node3

#初始化ceph-node节点,执行安装软件:ceph ceph-osd ceph-mds ceph-mon radosgw
--no-adjust-repos:不推送repo仓库
--nogpgcheck:不进行包的校验
ceph-deploy install --no-adjust-repos --nogpgcheck ceph-mon1-ceph-mds1-node1 ceph-mon2-ceph-mds2-node2 ceph-mon3-ceph-mds3-node

#添加mon节点
ceph-deploy mon add ceph-mon1-ceph-mds1-node1 
ceph-deploy mon add ceph-mon2-ceph-mds2-node2 
ceph-deploy mon add ceph-mon3-ceph-mds3-node3
#ceph-mon结果验证
cephadmin@ceph-deploy:~/ceph-cluster$ ceph -s
  cluster:
    id:     511a9f2f-c2eb-4461-9472-a2074f266bba
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph-mon1-ceph-mds1-node1,ceph-mon2-ceph-mds2-node2,ceph-mon3-ceph-mds3-node3 (age 9s)
    mgr: ceph-mgr1-ceph-rgw1(active, since 19m), standbys: ceph-mgr2-ceph-rgw2
    osd: 12 osds: 12 up (since 3m), 12 in (since 3m)
 
  data:
    pools:   1 pools, 1 pgs
    objects: 0 objects, 0 B
    usage:   74 MiB used, 480 GiB / 480 GiB avail
    pgs:     1 active+clean
 



#在mon节点安装软件,配置mon节点并生成同步密钥
apt install -y ceph-mon

#在ceph-deploy节点初始化mon节点
ceph-deploy mon create-initial


#验证mon节点,根据生成的配置文件只添加了一台mon服务器
root@ceph-mon1-ceph-mds1-node1:~# ps aux | grep ceph-mon
ceph       73614  0.5  2.1 416112 43156 ?        Ssl  13:52   0:00 /usr/bin/ceph-mon -f --cluster ceph --id ceph-mon1-ceph-mds1-node1 --setuser ceph --setgroup ceph
root       74197  0.0  0.0   8160   656 pts/1    S+   13:53   0:00 grep --color=auto ceph-mon
#检查mon的端口此步很重要后面使用cephFS和rbd都是使用此端口,监听地址错误会导致超时
root@ceph-mon1-ceph-mds1-node1:~# ss -lnt|grep 6789
LISTEN  0       512        192.168.10.103:6789           0.0.0.0:*
root@ceph-mon2-ceph-mds2-node2:~# ss -lnt|grep 6789
LISTEN  0       512        192.168.10.104:6789           0.0.0.0:* 
root@ceph-mon3-ceph-mds3-node3:~#  ss -lnt|grep 6789
LISTEN  0       512        192.168.10.105:6789           0.0.0.0:* 


#在node节点安装ceph-common
apt install ceph-common -y

#拷贝密钥到node1,node2,node3节点
ceph-deploy admin ceph-mon1-ceph-mds1-node1 ceph-mon2-ceph-mds2-node2 ceph-mon3-ceph-mds3-node3

#在ceph-node节点对密钥授权
#认证文件的属主和属组为了安全考虑,默认设置为了root 用户和root 组,如果需要ceph用户也能执行ceph 命令,那么就需要对ceph 用户进行授权
apt-get install acl
setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring


在ceph-mgr1和ceph-mgr2,ceph-mgr2上安装ceph-mgr包
apt install -y ceph-mgr

#初始化mgr节点
ceph-deploy mgr create ceph-mgr1-ceph-rgw1 ceph-mgr2-ceph-rgw2

验证ceph-mgr1-ceph-rgw1,ceph-mgr2-ceph-rgw2节点
root@ceph-mgr1-ceph-rgw1:~# ps aux | grep ceph-mgr


配置ceph-deploy管理ceph集群
#ceph-deploy管理ceph集群环境设置
sudo apt install -y ceph-common
ceph-deploy admin ceph-deploy
sudo setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring

#ceph-deploy管理ceph集群信息
cephadmin@ceph-deploy:~/ceph-cluster$ ceph -s
  cluster:
    id:     511a9f2f-c2eb-4461-9472-a2074f266bba
    health: HEALTH_WARN
            mon is allowing insecure global_id reclaim
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 1 daemons, quorum ceph-mon1-ceph-mds1-node1 (age 18m)
    mgr: ceph-mgr1-ceph-rgw1(active, since 3m), standbys: ceph-mgr2-ceph-rgw2
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs
    
    
#禁用非安全模式通信
ceph config set mon auth_allow_insecure_global_id_reclaim false
cephadmin@ceph-deploy:~/ceph-cluster$ ceph -s
  cluster:
    id:     511a9f2f-c2eb-4461-9472-a2074f266bba
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 1 daemons, quorum ceph-mon1-ceph-mds1-node1 (age 19m)
    mgr: ceph-mgr1-ceph-rgw1(active, since 4m), standbys: ceph-mgr2-ceph-rgw2
    osd: 0 osds: 0 up, 0 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:  

#ceph集群个组件版本
cephadmin@ceph-deploy:~/ceph-cluster$ ceph version
ceph version 16.2.11 (3cf40e2dca667f68c6ce3ff5cd94f01e711af894) pacific (stable)
cephadmin@ceph-deploy:~/ceph-cluster$ ceph versions
{
    "mon": {
        "ceph version 16.2.11 (3cf40e2dca667f68c6ce3ff5cd94f01e711af894) pacific (stable)": 1
    },
    "mgr": {
        "ceph version 16.2.11 (3cf40e2dca667f68c6ce3ff5cd94f01e711af894) pacific (stable)": 2
    },
    "osd": {},
    "mds": {},
    "overall": {
        "ceph version 16.2.11 (3cf40e2dca667f68c6ce3ff5cd94f01e711af894) pacific (stable)": 3
    }
}


#准备osd节点
#前面执行了node节点的初始化,如下步骤,后面的操作可以不执行
#擦除磁盘之前通过deploy 节点对node 节点执行安装ceph 基本运行环境。
#在ceph-deploy上操作
ceph-deploy install --release pacific ceph-mon1-ceph-mds1-node1 ceph-mon2-ceph-mds2-node2 ceph-mon3-ceph-mds3-node3

#列出ceph node 节点磁盘
ceph-deploy disk list ceph-mon1-ceph-mds1-node1 
ceph-deploy disk list ceph-mon2-ceph-mds2-node2
ceph-deploy disk list ceph-mon3-ceph-mds3-node3

#使用ceph-deploy disk zap擦除各ceph node的ceph数据磁盘
#在ceph-deploy上操作
ceph-deploy  disk zap ceph-mon1-ceph-mds1-node1  /dev/sdb
ceph-deploy  disk zap ceph-mon1-ceph-mds1-node1  /dev/sdc
ceph-deploy  disk zap ceph-mon1-ceph-mds1-node1  /dev/sdd
ceph-deploy  disk zap ceph-mon1-ceph-mds1-node1  /dev/sde
 
ceph-deploy  disk zap ceph-mon2-ceph-mds2-node2  /dev/sdb
ceph-deploy  disk zap ceph-mon2-ceph-mds2-node2  /dev/sdc
ceph-deploy  disk zap ceph-mon2-ceph-mds2-node2  /dev/sdd
ceph-deploy  disk zap ceph-mon2-ceph-mds2-node2  /dev/sde
  
ceph-deploy  disk zap ceph-mon3-ceph-mds3-node3  /dev/sdb
ceph-deploy  disk zap ceph-mon3-ceph-mds3-node3  /dev/sdc
ceph-deploy  disk zap ceph-mon3-ceph-mds3-node3  /dev/sdd
ceph-deploy  disk zap ceph-mon3-ceph-mds3-node3  /dev/sde


添加osd
#在ceph-deploy上操作
ceph-deploy osd create ceph-mon1-ceph-mds1-node1 --data /dev/sdb
ceph-deploy osd create ceph-mon1-ceph-mds1-node1 --data /dev/sdc
ceph-deploy osd create ceph-mon1-ceph-mds1-node1 --data /dev/sdd
ceph-deploy osd create ceph-mon1-ceph-mds1-node1 --data /dev/sde
 
ceph-deploy osd create ceph-mon2-ceph-mds2-node2 --data /dev/sdb
ceph-deploy osd create ceph-mon2-ceph-mds2-node2 --data /dev/sdc
ceph-deploy osd create ceph-mon2-ceph-mds2-node2 --data /dev/sdd
ceph-deploy osd create ceph-mon2-ceph-mds2-node2 --data /dev/sde
 
ceph-deploy osd create ceph-mon3-ceph-mds3-node3 --data /dev/sdb
ceph-deploy osd create ceph-mon3-ceph-mds3-node3 --data /dev/sdc
ceph-deploy osd create ceph-mon3-ceph-mds3-node3 --data /dev/sdd
ceph-deploy osd create ceph-mon3-ceph-mds3-node3 --data /dev/sde


设置osd开机自启动
systemctl enable ceph-osd@0 ceph-osd@1 ceph-osd@2 ceph-osd@3
systemctl enable ceph-osd@4 ceph-osd@5 ceph-osd@6 ceph-osd@7
systemctl enable ceph-osd@8 ceph-osd@9 ceph-osd@10 ceph-osd@11


#部署cephfs,安装ceph-mds软件包
apt install -y ceph-mds

#在ceph-deploy上把mds服务添加到ceph集群
#在ceph-deploy上操作
ceph-deploy mds create ceph-mon1-ceph-mds1-node1
ceph-deploy mds create ceph-mon2-ceph-mds2-node2
ceph-deploy mds create ceph-mon3-ceph-mds3-node3
ceph-deploy mds create ceph-mgr2-ceph-rgw2



创建CephFS metadata和cephfs-data存储池
cephfs-metadata:存放元数据的存储池,数据有几个T的话元数据大约1-2g,所有不需要太大,存放的都是数据的名字、大小,创建时间,修改时间,生产放32个pg足够了
cephfs-data存放数据的存储池
# 创建cephfs-metadata
root@ceph-mon1-ceph-mds1:~# ceph osd pool create cephfs-metadata 32 32
pool 'cephfs-metadata' created
# 创建cephfs-data
root@ceph-mon1-ceph-mds1:~# ceph osd pool create cephfs-data 64 64
pool 'cephfs-data' created
# 创建一个叫mycephfs的cephFS
root@ceph-mon1-ceph-mds1:~# ceph fs new mycephfs cephfs-metadata cephfs-data
new fs with metadata pool 3 and data pool 4

验证CephFS
root@ceph-mon1-ceph-mds1:~# ceph fs ls
name: mycephfs, metadata pool: cephfs-metadata, data pools: [cephfs-data ]
root@ceph-mon1-ceph-mds1:~# ceph fs status mycephfs
mycephfs - 0 clients
========
RANK  STATE           MDS             ACTIVITY     DNS    INOS   DIRS   CAPS  
 0    active  ceph-mon1-ceph-mds1  Reqs:    0 /s    10     13     12      0   
      POOL         TYPE     USED  AVAIL  
cephfs-metadata  metadata  96.0k  50.6G  
  cephfs-data      data       0   50.6G  
MDS version: ceph version 16.2.10 (45fa1a083152e41a408d15505f594ec5f1b4fe17) pacific (stable)


#MDS高可用优化
cephadmin@ceph-deploy:~/ceph-cluster$ cat ceph.conf 
[global]
fsid = 511a9f2f-c2eb-4461-9472-a2074f266bba
public_network = 192.168.10.0/24
cluster_network = 192.168.10.0/24
mon_initial_members = ceph-mon1-ceph-mds1-node1
mon_host = 192.168.10.103
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

[mds.ceph-mon2-ceph-mds2-node2]
mds_standby_for_name = ceph-mon1-ceph-mds1-node1
mds_standby_replay = true
[mds.ceph-mon3-ceph-mds3-node3]
mds_standby_for_name = ceph-mgr2-ceph-rgw2
mds_standby_replay = true


#在ceph-deploy拷贝到/etc/ceph
sudo cp -ar /home/cephadmin/ceph-cluster/* /etc/ceph/

#分发配置文件并重启mds 服务:
#分发配置文件保证各mds 服务重启有效
ceph-deploy --overwrite-conf config push ceph-mon1-ceph-mds1-node1
ceph-deploy --overwrite-conf config push ceph-mon2-ceph-mds2-node2
ceph-deploy --overwrite-conf config push ceph-mon3-ceph-mds3-node3
ceph-deploy --overwrite-conf config push ceph-mgr1-ceph-rgw1
ceph-deploy --overwrite-conf config push ceph-mgr2-ceph-rgw2
 
#重启mds节点,先重启active节点ceph-mds1和ceph-mgr2,再重启standby节点ceph-mds2和ceph-mds3
systemctl restart ceph-mds@ceph-mon1-ceph-mds1-node1.service
systemctl restart ceph-mds@ceph-mon2-ceph-mds2-node2.service
systemctl restart ceph-mds@ceph-mon3-ceph-mds3-node3.service
systemctl restart ceph-mds@ceph-mgr2-ceph-rgw2.service


#在ceph-mgr1和ceph-mgr2上安装ceph-radosgw
root@ceph-mgr1:~# apt install radosgw -y
root@ceph-mgr2:~# apt install radosgw -y


#在ceph deploy 服务器将ceph-mgr1和ceph-mgr2 初始化为radosGW 服务
#注意:如果前面有做ceph.conf的配置变动,需要将ceph.conf重新拷贝到ceph-rgw1和cpeh-rgw2上
ceph-deploy --overwrite-conf rgw create ceph-mgr1-ceph-rgw1
ceph-deploy --overwrite-conf rgw create ceph-mgr2-ceph-rgw2


#在ceph-deploy上查看集群的radosgw信息
cephadmin@ceph-deploy:~/ceph-cluster$ ceph -s
  cluster:
    id:     511a9f2f-c2eb-4461-9472-a2074f266bba
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph-mon1-ceph-mds1-node1,ceph-mon2-ceph-mds2-node2,ceph-mon3-ceph-mds3-node3 (age 16m)
    mgr: ceph-mgr1-ceph-rgw1(active, since 36m), standbys: ceph-mgr2-ceph-rgw2
    mds: 1/1 daemons up, 3 standby
    osd: 12 osds: 12 up (since 19m), 12 in (since 19m)
    rgw: 2 daemons active (2 hosts, 1 zones)
 
  data:
    volumes: 1/1 healthy
    pools:   7 pools, 225 pgs
    objects: 211 objects, 7.2 KiB
    usage:   90 MiB used, 480 GiB / 480 GiB avail
    pgs:     225 active+clean

配置时间偏差
#时钟偏差配置
mon clock drift allowed = 0.5 时钟偏差时间配置,默认为50毫秒,0.5的话就是0.5秒钟
mon clock drift warn backoff =3 时钟偏差出现多少次出现报警配置

添加配置
cat >/home/cephadmin/ceph-cluster/ceph.conf<<'EOF'
[global]
fsid = a6f25391-9efa-4a89-a7c6-663258be6321
public_network = 192.168.10.0/24
cluster_network = 192.168.10.0/24
mon_initial_members = ceph-mon1-ceph-mds1
mon_host = 192.168.10.103
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

#时钟偏差配置
mon clock drift allowed = 0.5
mon clock drift warn backoff =3
EOF


在同步到mon节点上 
scp ceph.conf root@192.168.10.203:/etc/ceph/
scp ceph.conf root@192.168.10.204:/etc/ceph/
scp ceph.conf root@192.168.10.205:/etc/ceph/

在mon服务器检查,也可以把配置直接拷贝到mon服务器的配置文件然后重启mon
===================================================
cephadmin@ceph-deploy:~/ceph-cluster$ cat ceph.conf
[global]
fsid = a6f25391-9efa-4a89-a7c6-663258be6321
public_network = 192.168.10.0/24
cluster_network = 192.168.10.0/24
mon_initial_members = ceph-mon1-ceph-mds1
mon_host = 192.168.10.103
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

#时钟偏差配置
mon clock drift allowed = 0.5
mon clock drift warn backoff =3
===================================================
root@ceph-mon2-ceph-mds2:~# cat /etc/ceph/ceph.conf
mon clock drift allowed = 0.5
mon clock drift warn backoff =3
cephadmin@ceph-deploy:~/ceph-cluster$ cat ceph.conf
[global]
fsid = a6f25391-9efa-4a89-a7c6-663258be6321
public_network = 192.168.10.0/24
cluster_network = 192.168.10.0/24
mon_initial_members = ceph-mon1-ceph-mds1
mon_host = 192.168.10.103
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

#时钟偏差配置
mon clock drift allowed = 0.5
mon clock drift warn backoff =3
===================================================
root@ceph-mon3-ceph-mds3:~# cat /etc/ceph/ceph.conf
mon clock drift allowed = 0.5
mon clock drift warn backoff =3
cephadmin@ceph-deploy:~/ceph-cluster$ cat ceph.conf
[global]
fsid = a6f25391-9efa-4a89-a7c6-663258be6321
public_network = 192.168.10.0/24
cluster_network = 192.168.10.0/24
mon_initial_members = ceph-mon1-ceph-mds1
mon_host = 192.168.10.103
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

#时钟偏差配置
mon clock drift allowed = 0.5
mon clock drift warn backoff =3
===================================================

重启mon节点
root@ceph-mon1-ceph-mds1:~# reboot
root@ceph-mon2-ceph-mds2:~# reboot
root@ceph-mon3-ceph-mds3:~# reboot

 

检查

posted @ 2023-02-06 09:24  YYQ-  阅读(130)  评论(0编辑  收藏  举报