翼度科技»论坛 云主机 LINUX 查看内容

ceph集群搭建详细教程(ceph-deploy)

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
ceph-deploy比较适合生产环境,不是用cephadm搭建。相对麻烦一些,但是并不难,细节把握好就行,只是命令多一些而已。
实验环境

服务器主机public网段IP(对外服务)cluster网段IP(集群通信)角色deploy192.168.2.120用于部署集群、管理集群ceph-node1192.168.2.121192.168.6.135ceph-mon、ceph-mgr、ceph-osdceph-node2192.168.2.122192.168.6.136ceph-mon、ceph-mgr、ceph-osdceph-node3192.168.2.123192.168.6.137ceph-mon、ceph-osd
  1. ceph-osd节点:一般建议裸金属部署。
  2.         10c\12c, 32G、64G更好。
  3. ceph-mgr两个节点就可以做高可用了,当然可以用更多节点。
  4. ceph-mon必须3个节点以上。
  5. ceph-mon性能可以低一点,比如跑虚拟机上。
  6.         4c8g也够用,4C16G更好。
复制代码
准备工作

关闭防火墙、关闭selinux
  1. systemctl disable firewalld
  2. systemctl stop firewalld
  3. setenforce 0
  4. sed -i '7s/enforcing/disabled/' /etc/selinux/config
复制代码
设置每台服务的hostname
  1. hostnamectl set-hostname ceph-node1
  2. hostnamectl set-hostname ceph-node2
  3. hostnamectl set-hostname ceph-node3
  4. hostnamectl set-hostname ceph-deploy
复制代码
设置host相互解析
  1. 192.168.2.120 ceph-deploy
  2. 192.168.2.121 ceph-node1
  3. 192.168.2.122 ceph-node2
  4. 192.168.2.123 ceph-node3
复制代码
每台服务器添加好epel源
  1. [epel]
  2. name=Extra Packages for Enterprise Linux 7 -
  3. baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch/
  4. #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=
  5. failovermethod=priority
  6. enabled=1
  7. gpgcheck=1
  8. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  9. [epel-debuginfo]
  10. name=Extra Packages for Enterprise Linux 7 -  - Debug
  11. baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch/debug
  12. #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=
  13. failovermethod=priority
  14. enabled=0
  15. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  16. gpgcheck=1
  17. [epel-source]
  18. name=Extra Packages for Enterprise Linux 7 -  - Source
  19. baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/7/SRPMS
  20. #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=
  21. failovermethod=priority
  22. enabled=0
  23. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  24. gpgcheck=1
复制代码
每台服务器添加ceph的源
  1. [Ceph]
  2. name=Ceph packages for $basearch
  3. baseurl=http://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/$basearch
  4. enabled=1
  5. gpgcheck=1
  6. type=rpm-md
  7. gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
  8. [Ceph-noarch]
  9. name=Ceph noarch packages
  10. baseurl=http://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch
  11. enabled=1
  12. gpgcheck=1
  13. type=rpm-md
  14. gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
  15. [ceph-source]
  16. name=Ceph source packages
  17. baseurl=http://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS
  18. enabled=1
  19. gpgcheck=1
  20. type=rpm-md
  21. gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc
复制代码
每天服务器添加ceph用户
  1. groupadd  ceph -g 3333
  2. useradd -u 3333 -g 3333 ceph
  3. echo "cephadmin888" | passwd --stdin ceph
复制代码
每台服务配置sudoer配置文件,允许ceph用户执行所有sudo命令
  1. echo "ceph    ALL=(ALL)       NOPASSWD:ALL" >> /etc/sudoers
复制代码
ceph-deploy节点生产ssh密钥
  1. # 切换到ceph用户,切记一定要切换再做..不然免密就是免密你当前的用户,因为后续要用ceph用户来部署。
  2. su - ceph
  3. # 生成ssh密钥
  4. ssh-keygen
复制代码
复制ssh密钥到ceph-node1、ceph-node2、ceph-node3节点
  1. sudo ssh-copy-id ceph@192.168.2.121
  2. sudo ssh-copy-id ceph@192.168.2.122
  3. sudo ssh-copy-id ceph@192.168.2.123
复制代码
开始部署集群

在ceph-deploy节点创建目录
  1. su - ceph
  2. [ceph@ceph-deploy ~]$ mkdir ceph-cluster-deploy
  3. [ceph@ceph-deploy ~]$ cd ceph-cluster-deploy/
  4. [ceph@ceph-deploy ceph-cluster-deploy]$
复制代码
安装ceph-deploy包
  1. [ceph@ceph-deploy ceph-cluster-deploy]$ sudo yum install ceph-deploy python-setuptools python2-subprocess3
复制代码
安装成功后可以查看ceph-deploy命令是否能够使用
  1. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy
  2. usage: ceph-deploy [-h] [-v | -q] [--version] [--username USERNAME]
  3.                    [--overwrite-conf] [--ceph-conf CEPH_CONF]
  4.                    COMMAND ...
复制代码
查看ceph-deploy的版本

ceph-deploy 2.0.1默认安装mimic的ceph版本(也就是13.2.10),如果需要安装其他版本ceph,可以使用--release来指定
  1. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy --version
  2. 2.0.1
复制代码
执行ceph-deploy install命令初始化osd节点

在ceph-deploy节点通过执行install命令,为ceph集群中的osd节点安装ceph相关包
  1. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy install --help
  2. usage: ceph-deploy install [-h] [--stable [CODENAME] | --release [CODENAME] |
  3.                            --testing | --dev [BRANCH_OR_TAG]]
  4.                            [--dev-commit [COMMIT]] [--mon] [--mgr] [--mds]
  5.                            [--rgw] [--osd] [--tests] [--cli] [--all]
  6.                            [--adjust-repos | --no-adjust-repos | --repo]
  7.                            [--local-mirror [LOCAL_MIRROR]]
  8.                            [--repo-url [REPO_URL]] [--gpg-url [GPG_URL]]
  9.                            [--nogpgcheck]
  10.                            HOST [HOST ...]
  11. Install Ceph packages on remote hosts.
  12. positional arguments:
  13.   HOST                  hosts to install on
  14. ... 等选项,此处忽略
  15. # 这里有2个比较重要的选项,分别是:
  16. --no-adjust-repos     install packages without modifying source repos # 不要去修改ceph的repo源,因为我们前面已经将源改成清华的源了,等下它给你改回来就慢的要死
  17. --nogpgcheck          install packages without gpgcheck # 跳过gpg校验
复制代码
执行命令:
  1. # p.s:ceph-node{1..3} 中的{1..3}这个是linux中的一个循环运算,比如用在for循环中
  2. # 实际上生产命令:ceph-deploy install --no-adjust-repos --nogpgcheck ceph-node1 ceph-node2 ceph-node3
  3. # 执行该命令进行安装
  4. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy install --no-adjust-repos --nogpgcheck ceph-node{1..3}
复制代码
执行过程就忽略了,执行成功后有类似提示,如下:
  1. [ceph-node3][DEBUG ] 完毕!
  2. [ceph-node3][INFO  ] Running command: sudo ceph --version
  3. [ceph-node3][DEBUG ] ceph version 13.2.10 (564bdc4ae87418a232fc901524470e1a0f76d641) mimic (stable)
复制代码
执行ceph-deploy new命令执行ceph集群初始化
  1. # 查看ceph-deploy new子命令的帮助信息
  2. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy new --help
  3. usage: ceph-deploy new [-h] [--no-ssh-copykey] [--fsid FSID]
  4.                        [--cluster-network CLUSTER_NETWORK]
  5.                        [--public-network PUBLIC_NETWORK]
  6.                        MON [MON ...]
  7. Start deploying a new cluster, and write a CLUSTER.conf and keyring for it.
  8. positional arguments:
  9.   MON                   initial monitor hostname, fqdn, or hostname:fqdn pair
  10. optional arguments:
  11.   -h, --help            show this help message and exit
  12.   --no-ssh-copykey      do not attempt to copy SSH keys
  13.   --fsid FSID           provide an alternate FSID for ceph.conf generation
  14.   --cluster-network CLUSTER_NETWORK
  15.                         specify the (internal) cluster network
  16.   --public-network PUBLIC_NETWORK
  17.                         specify the public network for a cluster
复制代码
执行命令:
  1. # 由于我是将mon也放到osd节点上,所以这里就是ceph-node1、ceph-node2、ceph-node3了
  2. # 生产环境,建议将mon单独服务器节点。
  3. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy new --cluster-network 192.168.6.0/24 --public-network 192.168.2.0/24  ceph-node1 ceph-node2 ceph-node3
  4. [ceph_deploy.conf][DEBUG ] found configuration file at: /home/ceph/.cephdeploy.conf
  5. [ceph_deploy.cli][INFO  ] Invoked (2.0.1): /bin/ceph-deploy new --cluster-network 192.168.6.0/24 --public-network 192.168.2.0/24 ceph-node1 ceph-node2
  6. [ceph_deploy.cli][INFO  ] ceph-deploy options:
  7. [ceph_deploy.cli][INFO  ]  username                      : None
  8. [ceph_deploy.cli][INFO  ]  func                          : <function new at 0x7fa768c08de8>
  9. [ceph_deploy.cli][INFO  ]  verbose                       : False
  10. [ceph_deploy.cli][INFO  ]  overwrite_conf                : False
  11. [ceph_deploy.cli][INFO  ]  quiet                         : False
  12. [ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7fa76837f8c0>
  13. [ceph_deploy.cli][INFO  ]  cluster                       : ceph
  14. [ceph_deploy.cli][INFO  ]  ssh_copykey                   : True
  15. [ceph_deploy.cli][INFO  ]  mon                           : ['ceph-node1', 'ceph-node2']
  16. [ceph_deploy.cli][INFO  ]  public_network                : 192.168.2.0/24
  17. [ceph_deploy.cli][INFO  ]  ceph_conf                     : None
  18. [ceph_deploy.cli][INFO  ]  cluster_network               : 192.168.6.0/24
  19. [ceph_deploy.cli][INFO  ]  default_release               : False
  20. [ceph_deploy.cli][INFO  ]  fsid                          : None
  21. [ceph_deploy.new][DEBUG ] Creating new cluster named ceph
  22. [ceph_deploy.new][INFO  ] making sure passwordless SSH succeeds
  23. [ceph-node1][DEBUG ] connected to host: ceph-deploy
  24. [ceph-node1][INFO  ] Running command: ssh -CT -o BatchMode=yes ceph-node1
  25. [ceph-node1][DEBUG ] connection detected need for sudo
  26. [ceph-node1][DEBUG ] connected to host: ceph-node1
  27. [ceph-node1][DEBUG ] detect platform information from remote host
  28. [ceph-node1][DEBUG ] detect machine type
  29. [ceph-node1][DEBUG ] find the location of an executable
  30. [ceph-node1][INFO  ] Running command: sudo /usr/sbin/ip link show
  31. [ceph-node1][INFO  ] Running command: sudo /usr/sbin/ip addr show
  32. [ceph-node1][DEBUG ] IP addresses found: [u'192.168.2.121', u'192.168.6.135']
  33. [ceph_deploy.new][DEBUG ] Resolving host ceph-node1
  34. [ceph_deploy.new][DEBUG ] Monitor ceph-node1 at 192.168.2.121
  35. [ceph_deploy.new][INFO  ] making sure passwordless SSH succeeds
  36. [ceph-node2][DEBUG ] connected to host: ceph-deploy
  37. [ceph-node2][INFO  ] Running command: ssh -CT -o BatchMode=yes ceph-node2
  38. [ceph_deploy.new][WARNIN] could not connect via SSH
  39. [ceph_deploy.new][INFO  ] will connect again with password prompt
  40. The authenticity of host 'ceph-node2 (192.168.2.122)' can't be established.
  41. ECDSA key fingerprint is SHA256:bFB9FzJjKEKMP2W5kW+orMbo9mD+tr8fLOPRsYaXhj8.
  42. ECDSA key fingerprint is MD5:b7:e5:bd:6a:56:10:42:3d:34:3a:54:ac:79:a2:3c:5b.
  43. Are you sure you want to continue connecting (yes/no)? yes
  44. Warning: Permanently added 'ceph-node2' (ECDSA) to the list of known hosts.
  45. [ceph-node2][DEBUG ] connected to host: ceph-node2
  46. [ceph-node2][DEBUG ] detect platform information from remote host
  47. [ceph-node2][DEBUG ] detect machine type
  48. [ceph_deploy.new][INFO  ] adding public keys to authorized_keys
  49. [ceph-node2][DEBUG ] append contents to file
  50. [ceph-node2][DEBUG ] connection detected need for sudo
  51. [ceph-node2][DEBUG ] connected to host: ceph-node2
  52. [ceph-node2][DEBUG ] detect platform information from remote host
  53. [ceph-node2][DEBUG ] detect machine type
  54. [ceph-node2][DEBUG ] find the location of an executable
  55. [ceph-node2][INFO  ] Running command: sudo /usr/sbin/ip link show
  56. [ceph-node2][INFO  ] Running command: sudo /usr/sbin/ip addr show
  57. [ceph-node2][DEBUG ] IP addresses found: [u'192.168.6.136', u'192.168.2.122']
  58. [ceph_deploy.new][DEBUG ] Resolving host ceph-node2
  59. [ceph_deploy.new][DEBUG ] Monitor ceph-node2 at 192.168.2.122
  60. [ceph_deploy.new][DEBUG ] Monitor initial members are ['ceph-node1', 'ceph-node2']
  61. [ceph_deploy.new][DEBUG ] Monitor addrs are [u'192.168.2.121', u'192.168.2.122']
  62. [ceph_deploy.new][DEBUG ] Creating a random mon key...
  63. [ceph_deploy.new][DEBUG ] Writing monitor keyring to ceph.mon.keyring...
  64. [ceph_deploy.new][DEBUG ] Writing initial config to ceph.conf...
  65. # 查看当前目录,可以发现生产了一些文件
  66. [ceph@ceph-deploy ceph-cluster-deploy]$ ll
  67. 总用量 16
  68. -rw-rw-r-- 1 ceph ceph  292 12月 22 12:10 ceph.conf  # conf是ceph集群的配置文件
  69. -rw-rw-r-- 1 ceph ceph 5083 12月 22 12:10 ceph-deploy-ceph.log # 日志
  70. -rw------- 1 ceph ceph   73 12月 22 12:10 ceph.mon.keyring # 这个是ceph集群的密钥
  71. # 查看ceph.conf
  72. [ceph@ceph-deploy ceph-cluster-deploy]$ cat ceph.conf
  73. [global]
  74. fsid = f1da3a2e-b8df-46ba-9c6b-0030da25c73e
  75. public_network = 192.168.2.0/24
  76. cluster_network = 192.168.6.0/24
  77. mon_initial_members = ceph-node1, ceph-node2
  78. mon_host = 192.168.2.121,192.168.2.122
  79. auth_cluster_required = cephx
  80. auth_service_required = cephx
  81. auth_client_required = cephx
复制代码
配置mon节点

安装ceph-mon包

如果是独立的mon节点,记得检查各个mon节点中是否安装了ceph-mon包
  1. yum install -y ceph-mon
复制代码
初始化mon节点

切换回ceph-deploy节点
  1. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy mon create-initial
复制代码
执行完成后回发现又多了一些配置文件,这些文件都是非常重要的,类似k8s中的kubeconfig,不要随意泄露。
  1. [ceph@ceph-deploy ceph-cluster-deploy]$ ll
  2. 总用量 476
  3. -rw------- 1 ceph ceph    113 12月 22 13:11 ceph.bootstrap-mds.keyring
  4. -rw------- 1 ceph ceph    113 12月 22 13:11 ceph.bootstrap-mgr.keyring
  5. -rw------- 1 ceph ceph    113 12月 22 13:11 ceph.bootstrap-osd.keyring
  6. -rw------- 1 ceph ceph    113 12月 22 13:11 ceph.bootstrap-rgw.keyring
  7. -rw------- 1 ceph ceph    151 12月 22 13:11 ceph.client.admin.keyring
  8. -rw-rw-r-- 1 ceph ceph    292 12月 22 12:11 ceph.conf
  9. -rw-rw-r-- 1 ceph ceph 207826 12月 22 13:17 ceph-deploy-ceph.log
  10. -rw------- 1 ceph ceph     73 12月 22 12:11 ceph.mon.keyring
复制代码
而且对应的mon节点上的服务器,运行的mon服务
  1. ceph-mon@.service
  2. 从此处链接:
  3. /etc/systemd/system/ceph-mon.target.wants/ceph-mon@<mon节点主机名>.service
复制代码
并且也有对应的进程
  1. [root@ceph-node3 ~]# ps axu | grep non
  2. ceph        2614  0.5  2.1 470596 39944 ?        Ssl  13:17   0:00 /usr/bin/ceph-mon -f --cluster ceph --id ceph-node3 --setuser ceph --setgroup ceph
复制代码
推送管理密钥到节点

推送密钥到各个osd节点、或者你需要使用ceph集群管理的节点。不推送你就得每次自己指定密钥,比较麻烦。。。
  1. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy admin ceph-node{1..3}
  2. # 推送给自己,因为我这里是用同一个服务器来部署和管理ceph集群
  3. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy admin ceph-deploy
复制代码
设置密钥的facl权限

在各个node节点上设置文件facl,因为推送过去的密码默认属主和属组都是root用户,但是我们前面是创建ceph用户用于管理ceph集群
  1. # 可以在root用户下设置,也可以用sudo
  2. # ceph-node1
  3. [root@ceph-node1 ~]# setfacl -m u:ceph:rw /etc/ceph/ceph.client.admin.keyring
  4. [root@ceph-node1 ~]# getfacl /etc/ceph/ceph.client.admin.keyring
  5. getfacl: Removing leading '/' from absolute path names
  6. # file: etc/ceph/ceph.client.admin.keyring
  7. # owner: root
  8. # group: root
  9. user::rw-
  10. user:ceph:rw-
  11. group::---
  12. mask::rw-
  13. other::---
  14. # ceph-node2 和 ceph-node3 类似
  15. # 因为我打算在deploy节点同时管理ceph,也就是admin和deploy是同一个节点,所以这里也要给ddeploy节点设置facl
  16. [root@ceph-deploy ~]# setfacl -m u:ceph:rw /etc/ceph/ceph.client.admin.keyring
复制代码
配置mgr节点

只有ceph luminios和以上的版本才有mgr节点,老版本并没有,所以老版本不需要部署。
但是我们部署的是安装mimic的ceph版本(也就是13.2.10),所以需要部署。
安装ceph-mgr包

如果是独立的mgr节点服务器,记得检查是否安装了ceph-mgr包
  1. yum install -y ceph-mgr
复制代码
ceph-mgr命令选项:
  1. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy mgr --help
  2. usage: ceph-deploy mgr [-h] {create} ...
  3. Ceph MGR daemon management
  4. positional arguments:
  5.   {create}
  6.     create    Deploy Ceph MGR on remote host(s)
  7. optional arguments:
  8.   -h, --help  show this help message and exit
复制代码
添加mgr节点

执行命令,初始化mgr节点
  1. # 由于我是osd、mon、mgr混用服务器,所以这里就用ceph-node1、ceph-node2了。
  2. ceph-deploy mgr create ceph-node1 ceph-node2
复制代码
检查ceph集群状态
  1. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph -s
  2.   cluster:
  3.     id:     f1da3a2e-b8df-46ba-9c6b-0030da25c73e
  4.     health: HEALTH_WARN
  5.             OSD count 0 < osd_pool_default_size 3
  6.   services:
  7.     mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3
  8.     mgr: ceph-node1(active), standbys: ceph-node2
  9.     osd: 0 osds: 0 up, 0 in
  10.   data:
  11.     pools:   0 pools, 0 pgs
  12.     objects: 0  objects, 0 B
  13.     usage:   0 B used, 0 B / 0 B avail
  14.     pgs:     
复制代码
添加osd

添加osd到集群中
  1. # 擦除osd节点上要被添加的磁盘的空间
  2. ceph-deploy disk zap ceph-node1 /dev/sd{b,c,d}
  3. ceph-deploy disk zap ceph-node2 /dev/sd{b,c,d}
  4. ceph-deploy disk zap ceph-node3 /dev/sd{b,c,d}
  5. # 添加ceph-node1上的磁盘为osd
  6. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy osd create ceph-node1 --data /dev/sdb
  7. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy osd create ceph-node1 --data /dev/sdc
  8. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy osd create ceph-node1 --data /dev/sdd
  9. # 添加ceph-node2上的磁盘为osd
  10. ceph-deploy osd create ceph-node2 --data /dev/sdb
  11. ceph-deploy osd create ceph-node2 --data /dev/sdc
  12. ceph-deploy osd create ceph-node2 --data /dev/sdd
  13. # 添加ceph-node3上的磁盘为osd
  14. ceph-deploy osd create ceph-node3 --data /dev/sdb
  15. ceph-deploy osd create ceph-node3 --data /dev/sdc
  16. ceph-deploy osd create ceph-node3 --data /dev/sdd
  17. # 添加完成后,会在对应的osd节点上添加osd服务(但是只是runtime临时生效,必须将其改为永久生效)
  18. 如:/run/systemd/system/ceph-osd.target.wants/ceph-osd@7.service # 7是osd的id,从0开始。
复制代码
检查osd状态
  1. # 通过ceph-deploy可以检查
  2. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy osd list ceph-node{1,2,3}
  3. # 通过ceph osd stat命令检查
  4. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph osd stat
  5. 9 osds: 9 up, 9 in; epoch: e37
  6. # 使用 ceph osd status 查看
  7. - `id`: OSD的唯一标识符。
  8. - `host`: OSD所在的主机名
  9. - `used`: OSD已使用的存储容量。
  10. - `avail`: OSD可用的存储容量。
  11. - `wr ops`: OSD每秒写入操作的数量。
  12. - `wr data`: OSD每秒写入数据的数量。
  13. - `rd ops`: OSD每秒读取操作的数量。
  14. - `rd data`: OSD每秒读取数据的数量。
  15. - `state`: OSD的状态,"exists"表示OSD存在,"up"表示OSD正常运行。
  16. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph osd status
  17. +----+------------+-------+-------+--------+---------+--------+---------+-----------+
  18. | id |    host    |  used | avail | wr ops | wr data | rd ops | rd data |   state   |
  19. +----+------------+-------+-------+--------+---------+--------+---------+-----------+
  20. | 0  | ceph-node1 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
  21. | 1  | ceph-node1 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
  22. | 2  | ceph-node1 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
  23. | 3  | ceph-node2 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
  24. | 4  | ceph-node2 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
  25. | 5  | ceph-node2 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
  26. | 6  | ceph-node3 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
  27. | 7  | ceph-node3 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
  28. | 8  | ceph-node3 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
  29. +----+------------+-------+-------+--------+---------+--------+---------+-----------+
  30. # ceph osd tree 也可以
  31. [root@ceph-node1 ~]# ceph osd tree
  32. ID CLASS WEIGHT  TYPE NAME           STATUS REWEIGHT PRI-AFF
  33. -1       0.04408 root default                                
  34. -3       0.01469     host ceph-node1                        
  35. 0   hdd 0.00490         osd.0           up  1.00000 1.00000
  36. 1   hdd 0.00490         osd.1           up  1.00000 1.00000
  37. 2   hdd 0.00490         osd.2           up  1.00000 1.00000
  38. -5       0.01469     host ceph-node2                        
  39. 3   hdd 0.00490         osd.3           up  1.00000 1.00000
  40. 4   hdd 0.00490         osd.4           up  1.00000 1.00000
  41. 5   hdd 0.00490         osd.5           up  1.00000 1.00000
  42. -7       0.01469     host ceph-node3                        
  43. 6   hdd 0.00490         osd.6           up  1.00000 1.00000
  44. 7   hdd 0.00490         osd.7           up  1.00000 1.00000
  45. 8   hdd 0.00490         osd.8           up  1.00000 1.00000
  46. # 这个是用来查看osd的disk free,类似linux的df
  47. - `ID`: OSD的唯一标识符。
  48. - `CLASS`: OSD的存储类别。
  49. - `WEIGHT`: OSD的权重。
  50. - `REWEIGHT`: OSD的重新加权比例。
  51. - `SIZE`: OSD的总存储容量。
  52. - `RAW USE`: OSD当前使用的原始存储容量。
  53. - `DATA`: OSD数据存储使用量。
  54. - `OMAP`: OSD的OMAP(Object Map)数据存储使用量。
  55. - `META`: OSD元数据存储使用量。
  56. - `AVAIL`: OSD可用的存储容量。
  57. - `%USE`: OSD使用率百分比。
  58. - `VAR`: OSD使用率方差。
  59. - `PGS`: OSD分布的PG(Placement Group)数量。
  60. - `STATUS`: OSD的状态,"up"表示OSD正常运行。
  61. [root@ceph-node1 ~]# ceph osd df
  62. ID CLASS WEIGHT  REWEIGHT SIZE    USE     DATA    OMAP META  AVAIL   %USE  VAR  PGS
  63. 0   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.7 MiB  0 B 1 GiB 4.0 GiB 20.11 1.00   0
  64. 1   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.7 MiB  0 B 1 GiB 4.0 GiB 20.11 1.00   0
  65. 2   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.7 MiB  0 B 1 GiB 4.0 GiB 20.11 1.00   0
  66. 3   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.7 MiB  0 B 1 GiB 4.0 GiB 20.11 1.00   0
  67. 4   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.7 MiB  0 B 1 GiB 4.0 GiB 20.11 1.00   0
  68. 5   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.7 MiB  0 B 1 GiB 4.0 GiB 20.11 1.00   0
  69. 6   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.7 MiB  0 B 1 GiB 4.0 GiB 20.11 1.00   0
  70. 7   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.7 MiB  0 B 1 GiB 4.0 GiB 20.11 1.00   0
  71. 8   hdd 0.00490  1.00000 5.0 GiB 1.0 GiB 4.7 MiB  0 B 1 GiB 4.0 GiB 20.11 1.00   0
  72.                     TOTAL  45 GiB 9.0 GiB  42 MiB  0 B 9 GiB  36 GiB 20.11         
  73. MIN/MAX VAR: 1.00/1.00  STDDEV: 0
复制代码
将ceph-osd服务设置开机启动

根据osd所在节点,添加对应的服务为开机启动
  1. # ceph-node1
  2. systemctl enable ceph-osd@{0,1,2}
  3. # ceph-node2
  4. systemctl enable ceph-osd@{3,4,5}
  5. # ceph-node3
  6. systemctl enable ceph-osd@{6,7,8}
复制代码
管理相关

从rados中移除osd

移除的时候,最好一个个移除,不然有可能性能跟不上,因为ceph自己去找其他osd的备份来作为主,一旦一次性删除太多就可能出现性能问题。
  1. # 停用osd
  2. ceph osd out <osd-id>
  3. # 停止osd服务
  4. systemctl stop ceph-osd@<osd-id>
  5. # 移除osd
  6. ceph osd ourge <osd-id> --yes-i-really-mean-it
  7. # 检查ceph.conf集群配置文件中,是福哦还有对应osd的配置,如有则手动删除、
  8. ###### Luminous 之前的版本,移除步骤如下 :
  9. ceph osd crush remove <name>
  10. ceph auth del osd <osd-id>
  11. ceph osd rm <osd-id>
复制代码
手动测试数据上传、下载
  1. # 通过rados创建pool
  2. rados mkpool <pool-name> [123[ 4]]  create pool <pool-name>'
  3.                                     [with auid 123[and using crush rule 4]]
  4. # 通过ceph 命令创建pool
  5. ceph osd pool create <poolname> <int[0-]> {<int[0-]>} {replicated|erasure} {<erasure_code_profile>}          create pool
  6. {<rule>} {<int>}   
  7. ceph osd pool  create <pool名> <pg值> <pg备份值>
  8. # 上传文件到指定的pool
  9. [ceph@ceph-deploy ceph-cluster-deploy]$ rados put myfile /etc/fstab -p swq-test
  10. # 列出指定pool中的文件
  11. [ceph@ceph-deploy ceph-cluster-deploy]$ rados ls -p swq-test
  12. myfile
  13. # 下载文件
  14. [ceph@ceph-deploy ceph-cluster-deploy]$ rados get myfile -p swq-test /tmp/my.txt
  15. [ceph@ceph-deploy ceph-cluster-deploy]$ cat /tmp/my.txt
  16. #
  17. # /etc/fstab
  18. # Created by anaconda on Thu Dec 21 23:51:13 2023
  19. #
  20. # Accessible filesystems, by reference, are maintained under '/dev/disk'
  21. # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
  22. #
  23. /dev/mapper/centos-root /                       xfs     defaults        0 0
  24. UUID=4b1bb372-7f34-48f6-8852-036ee6dfd125 /boot  
  25. # 查看文件的映射关系
  26. [ceph@ceph-deploy ceph-cluster-deploy]$ ceph osd map swq-test myfile
  27. osdmap e43 pool 'swq-test' (2) object 'myfile' -> pg 2.423e92f7 (2.17) -> up ([5,6,2], p5) acting ([5,6,2], p5)
  28. # 在哪个pg中?
  29. #         pg为2的423e92f7中。
  30. # -> pg 2.423e92f7 (2.17)
  31. # 在哪个osd中?
  32. #         这里是在5,6,2这3个osd中,主osd为:5
  33. #         acting是目前活动的osd
  34. # -> up ([5,6,2], p5) acting ([5,6,2], p5)
复制代码
来源:https://www.cnblogs.com/juelian/p/17921681.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具