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

这篇具有很好参考价值的文章主要介绍了ceph集群搭建详细教程(ceph-deploy)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

实验环境

服务器主机 public网段IP(对外服务) cluster网段IP(集群通信) 角色
deploy 192.168.2.120 用于部署集群、管理集群
ceph-node1 192.168.2.121 192.168.6.135 ceph-mon、ceph-mgr、ceph-osd
ceph-node2 192.168.2.122 192.168.6.136 ceph-mon、ceph-mgr、ceph-osd
ceph-node3 192.168.2.123 192.168.6.137 ceph-mon、ceph-osd
ceph-osd节点:一般建议裸金属部署。
	10c\12c, 32G、64G更好。

ceph-mgr两个节点就可以做高可用了,当然可以用更多节点。

ceph-mon必须3个节点以上。
ceph-mon性能可以低一点,比如跑虚拟机上。
	4c8g也够用,4C16G更好。

准备工作

关闭防火墙、关闭selinux

systemctl disable firewalld
systemctl stop firewalld
setenforce 0
sed -i '7s/enforcing/disabled/' /etc/selinux/config

设置每台服务的hostname

hostnamectl set-hostname ceph-node1
hostnamectl set-hostname ceph-node2
hostnamectl set-hostname ceph-node3
hostnamectl set-hostname ceph-deploy

设置host相互解析

192.168.2.120 ceph-deploy
192.168.2.121 ceph-node1
192.168.2.122 ceph-node2
192.168.2.123 ceph-node3

每台服务器添加好epel源

[epel]
name=Extra Packages for Enterprise Linux 7 -
baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 -  - Debug
baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/7/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 -  - Source
baseurl=http://mirrors.tuna.tsinghua.edu.cn/epel/7/SRPMS
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

每台服务器添加ceph的源

[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc

每天服务器添加ceph用户

groupadd  ceph -g 3333
useradd -u 3333 -g 3333 ceph
echo "cephadmin888" | passwd --stdin ceph

每台服务配置sudoer配置文件,允许ceph用户执行所有sudo命令

echo "ceph    ALL=(ALL)       NOPASSWD:ALL" >> /etc/sudoers

ceph-deploy节点生产ssh密钥

# 切换到ceph用户,切记一定要切换再做..不然免密就是免密你当前的用户,因为后续要用ceph用户来部署。
su - ceph
# 生成ssh密钥
ssh-keygen

复制ssh密钥到ceph-node1、ceph-node2、ceph-node3节点

sudo ssh-copy-id ceph@192.168.2.121
sudo ssh-copy-id ceph@192.168.2.122
sudo ssh-copy-id ceph@192.168.2.123

开始部署集群

在ceph-deploy节点创建目录

su - ceph
[ceph@ceph-deploy ~]$ mkdir ceph-cluster-deploy
[ceph@ceph-deploy ~]$ cd ceph-cluster-deploy/
[ceph@ceph-deploy ceph-cluster-deploy]$ 

安装ceph-deploy包

[ceph@ceph-deploy ceph-cluster-deploy]$ sudo yum install ceph-deploy python-setuptools python2-subprocess3

安装成功后可以查看ceph-deploy命令是否能够使用

[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy 
usage: ceph-deploy [-h] [-v | -q] [--version] [--username USERNAME]
                   [--overwrite-conf] [--ceph-conf CEPH_CONF]
                   COMMAND ...

查看ceph-deploy的版本

ceph-deploy 2.0.1默认安装mimic的ceph版本(也就是13.2.10),如果需要安装其他版本ceph,可以使用--release来指定

[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy --version
2.0.1

执行ceph-deploy install命令初始化osd节点

在ceph-deploy节点通过执行install命令,为ceph集群中的osd节点安装ceph相关包

[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy install --help
usage: ceph-deploy install [-h] [--stable [CODENAME] | --release [CODENAME] |
                           --testing | --dev [BRANCH_OR_TAG]]
                           [--dev-commit [COMMIT]] [--mon] [--mgr] [--mds]
                           [--rgw] [--osd] [--tests] [--cli] [--all]
                           [--adjust-repos | --no-adjust-repos | --repo]
                           [--local-mirror [LOCAL_MIRROR]]
                           [--repo-url [REPO_URL]] [--gpg-url [GPG_URL]]
                           [--nogpgcheck]
                           HOST [HOST ...]

Install Ceph packages on remote hosts.

positional arguments:
  HOST                  hosts to install on
... 等选项,此处忽略

# 这里有2个比较重要的选项,分别是:
--no-adjust-repos     install packages without modifying source repos # 不要去修改ceph的repo源,因为我们前面已经将源改成清华的源了,等下它给你改回来就慢的要死
--nogpgcheck          install packages without gpgcheck # 跳过gpg校验

执行命令:

# p.s:ceph-node{1..3} 中的{1..3}这个是linux中的一个循环运算,比如用在for循环中
# 实际上生产命令:ceph-deploy install --no-adjust-repos --nogpgcheck ceph-node1 ceph-node2 ceph-node3

# 执行该命令进行安装
[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy install --no-adjust-repos --nogpgcheck ceph-node{1..3}

执行过程就忽略了,执行成功后有类似提示,如下:

[ceph-node3][DEBUG ] 完毕!
[ceph-node3][INFO  ] Running command: sudo ceph --version
[ceph-node3][DEBUG ] ceph version 13.2.10 (564bdc4ae87418a232fc901524470e1a0f76d641) mimic (stable)

执行ceph-deploy new命令执行ceph集群初始化

# 查看ceph-deploy new子命令的帮助信息
[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy new --help
usage: ceph-deploy new [-h] [--no-ssh-copykey] [--fsid FSID]
                       [--cluster-network CLUSTER_NETWORK]
                       [--public-network PUBLIC_NETWORK]
                       MON [MON ...]

Start deploying a new cluster, and write a CLUSTER.conf and keyring for it.

positional arguments:
  MON                   initial monitor hostname, fqdn, or hostname:fqdn pair

optional arguments:
  -h, --help            show this help message and exit
  --no-ssh-copykey      do not attempt to copy SSH keys
  --fsid FSID           provide an alternate FSID for ceph.conf generation
  --cluster-network CLUSTER_NETWORK
                        specify the (internal) cluster network
  --public-network PUBLIC_NETWORK
                        specify the public network for a cluster

执行命令:

# 由于我是将mon也放到osd节点上,所以这里就是ceph-node1、ceph-node2、ceph-node3了
# 生产环境,建议将mon单独服务器节点。
[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
[ceph_deploy.conf][DEBUG ] found configuration file at: /home/ceph/.cephdeploy.conf
[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
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  func                          : <function new at 0x7fa768c08de8>
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7fa76837f8c0>
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  ssh_copykey                   : True
[ceph_deploy.cli][INFO  ]  mon                           : ['ceph-node1', 'ceph-node2']
[ceph_deploy.cli][INFO  ]  public_network                : 192.168.2.0/24
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  cluster_network               : 192.168.6.0/24
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  fsid                          : None
[ceph_deploy.new][DEBUG ] Creating new cluster named ceph
[ceph_deploy.new][INFO  ] making sure passwordless SSH succeeds
[ceph-node1][DEBUG ] connected to host: ceph-deploy 
[ceph-node1][INFO  ] Running command: ssh -CT -o BatchMode=yes ceph-node1
[ceph-node1][DEBUG ] connection detected need for sudo
[ceph-node1][DEBUG ] connected to host: ceph-node1 
[ceph-node1][DEBUG ] detect platform information from remote host
[ceph-node1][DEBUG ] detect machine type
[ceph-node1][DEBUG ] find the location of an executable
[ceph-node1][INFO  ] Running command: sudo /usr/sbin/ip link show
[ceph-node1][INFO  ] Running command: sudo /usr/sbin/ip addr show
[ceph-node1][DEBUG ] IP addresses found: [u'192.168.2.121', u'192.168.6.135']
[ceph_deploy.new][DEBUG ] Resolving host ceph-node1
[ceph_deploy.new][DEBUG ] Monitor ceph-node1 at 192.168.2.121
[ceph_deploy.new][INFO  ] making sure passwordless SSH succeeds
[ceph-node2][DEBUG ] connected to host: ceph-deploy 
[ceph-node2][INFO  ] Running command: ssh -CT -o BatchMode=yes ceph-node2
[ceph_deploy.new][WARNIN] could not connect via SSH
[ceph_deploy.new][INFO  ] will connect again with password prompt
The authenticity of host 'ceph-node2 (192.168.2.122)' can't be established.
ECDSA key fingerprint is SHA256:bFB9FzJjKEKMP2W5kW+orMbo9mD+tr8fLOPRsYaXhj8.
ECDSA key fingerprint is MD5:b7:e5:bd:6a:56:10:42:3d:34:3a:54:ac:79:a2:3c:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ceph-node2' (ECDSA) to the list of known hosts.
[ceph-node2][DEBUG ] connected to host: ceph-node2 
[ceph-node2][DEBUG ] detect platform information from remote host
[ceph-node2][DEBUG ] detect machine type
[ceph_deploy.new][INFO  ] adding public keys to authorized_keys
[ceph-node2][DEBUG ] append contents to file
[ceph-node2][DEBUG ] connection detected need for sudo
[ceph-node2][DEBUG ] connected to host: ceph-node2 
[ceph-node2][DEBUG ] detect platform information from remote host
[ceph-node2][DEBUG ] detect machine type
[ceph-node2][DEBUG ] find the location of an executable
[ceph-node2][INFO  ] Running command: sudo /usr/sbin/ip link show
[ceph-node2][INFO  ] Running command: sudo /usr/sbin/ip addr show
[ceph-node2][DEBUG ] IP addresses found: [u'192.168.6.136', u'192.168.2.122']
[ceph_deploy.new][DEBUG ] Resolving host ceph-node2
[ceph_deploy.new][DEBUG ] Monitor ceph-node2 at 192.168.2.122
[ceph_deploy.new][DEBUG ] Monitor initial members are ['ceph-node1', 'ceph-node2']
[ceph_deploy.new][DEBUG ] Monitor addrs are [u'192.168.2.121', u'192.168.2.122']
[ceph_deploy.new][DEBUG ] Creating a random mon key...
[ceph_deploy.new][DEBUG ] Writing monitor keyring to ceph.mon.keyring...
[ceph_deploy.new][DEBUG ] Writing initial config to ceph.conf...

# 查看当前目录,可以发现生产了一些文件
[ceph@ceph-deploy ceph-cluster-deploy]$ ll
总用量 16
-rw-rw-r-- 1 ceph ceph  292 12月 22 12:10 ceph.conf  # conf是ceph集群的配置文件
-rw-rw-r-- 1 ceph ceph 5083 12月 22 12:10 ceph-deploy-ceph.log # 日志
-rw------- 1 ceph ceph   73 12月 22 12:10 ceph.mon.keyring # 这个是ceph集群的密钥

# 查看ceph.conf
[ceph@ceph-deploy ceph-cluster-deploy]$ cat ceph.conf 
[global]
fsid = f1da3a2e-b8df-46ba-9c6b-0030da25c73e
public_network = 192.168.2.0/24
cluster_network = 192.168.6.0/24
mon_initial_members = ceph-node1, ceph-node2
mon_host = 192.168.2.121,192.168.2.122
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

配置mon节点

安装ceph-mon包

如果是独立的mon节点,记得检查各个mon节点中是否安装了ceph-mon包

yum install -y ceph-mon

初始化mon节点

切换回ceph-deploy节点

[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy mon create-initial

执行完成后回发现又多了一些配置文件,这些文件都是非常重要的,类似k8s中的kubeconfig,不要随意泄露。

[ceph@ceph-deploy ceph-cluster-deploy]$ ll
总用量 476
-rw------- 1 ceph ceph    113 12月 22 13:11 ceph.bootstrap-mds.keyring
-rw------- 1 ceph ceph    113 12月 22 13:11 ceph.bootstrap-mgr.keyring
-rw------- 1 ceph ceph    113 12月 22 13:11 ceph.bootstrap-osd.keyring
-rw------- 1 ceph ceph    113 12月 22 13:11 ceph.bootstrap-rgw.keyring
-rw------- 1 ceph ceph    151 12月 22 13:11 ceph.client.admin.keyring
-rw-rw-r-- 1 ceph ceph    292 12月 22 12:11 ceph.conf
-rw-rw-r-- 1 ceph ceph 207826 12月 22 13:17 ceph-deploy-ceph.log
-rw------- 1 ceph ceph     73 12月 22 12:11 ceph.mon.keyring

而且对应的mon节点上的服务器,运行的mon服务

ceph-mon@.service
从此处链接:
/etc/systemd/system/ceph-mon.target.wants/ceph-mon@<mon节点主机名>.service

并且也有对应的进程

[root@ceph-node3 ~]# ps axu | grep non
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集群管理的节点。不推送你就得每次自己指定密钥,比较麻烦。。。

[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy admin ceph-node{1..3}

# 推送给自己,因为我这里是用同一个服务器来部署和管理ceph集群
[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy admin ceph-deploy

设置密钥的facl权限

在各个node节点上设置文件facl,因为推送过去的密码默认属主和属组都是root用户,但是我们前面是创建ceph用户用于管理ceph集群

# 可以在root用户下设置,也可以用sudo

# ceph-node1
[root@ceph-node1 ~]# setfacl -m u:ceph:rw /etc/ceph/ceph.client.admin.keyring 
[root@ceph-node1 ~]# getfacl /etc/ceph/ceph.client.admin.keyring
getfacl: Removing leading '/' from absolute path names
# file: etc/ceph/ceph.client.admin.keyring
# owner: root
# group: root
user::rw-
user:ceph:rw-
group::---
mask::rw-
other::---

# ceph-node2 和 ceph-node3 类似

# 因为我打算在deploy节点同时管理ceph,也就是admin和deploy是同一个节点,所以这里也要给ddeploy节点设置facl
[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包

yum install -y ceph-mgr

ceph-mgr命令选项:

[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy mgr --help
usage: ceph-deploy mgr [-h] {create} ...

Ceph MGR daemon management

positional arguments:
  {create}
    create    Deploy Ceph MGR on remote host(s)

optional arguments:
  -h, --help  show this help message and exit

添加mgr节点

执行命令,初始化mgr节点

# 由于我是osd、mon、mgr混用服务器,所以这里就用ceph-node1、ceph-node2了。
ceph-deploy mgr create ceph-node1 ceph-node2

检查ceph集群状态

[ceph@ceph-deploy ceph-cluster-deploy]$ ceph -s
  cluster:
    id:     f1da3a2e-b8df-46ba-9c6b-0030da25c73e
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3
 
  services:
    mon: 3 daemons, quorum ceph-node1,ceph-node2,ceph-node3
    mgr: ceph-node1(active), standbys: ceph-node2
    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:     

添加osd

添加osd到集群中

# 擦除osd节点上要被添加的磁盘的空间
ceph-deploy disk zap ceph-node1 /dev/sd{b,c,d}
ceph-deploy disk zap ceph-node2 /dev/sd{b,c,d}
ceph-deploy disk zap ceph-node3 /dev/sd{b,c,d}

# 添加ceph-node1上的磁盘为osd
[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy osd create ceph-node1 --data /dev/sdb
[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy osd create ceph-node1 --data /dev/sdc
[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy osd create ceph-node1 --data /dev/sdd

# 添加ceph-node2上的磁盘为osd
ceph-deploy osd create ceph-node2 --data /dev/sdb
ceph-deploy osd create ceph-node2 --data /dev/sdc
ceph-deploy osd create ceph-node2 --data /dev/sdd

# 添加ceph-node3上的磁盘为osd
ceph-deploy osd create ceph-node3 --data /dev/sdb
ceph-deploy osd create ceph-node3 --data /dev/sdc
ceph-deploy osd create ceph-node3 --data /dev/sdd


# 添加完成后,会在对应的osd节点上添加osd服务(但是只是runtime临时生效,必须将其改为永久生效)
如:/run/systemd/system/ceph-osd.target.wants/ceph-osd@7.service # 7是osd的id,从0开始。

检查osd状态

# 通过ceph-deploy可以检查
[ceph@ceph-deploy ceph-cluster-deploy]$ ceph-deploy osd list ceph-node{1,2,3}


# 通过ceph osd stat命令检查
[ceph@ceph-deploy ceph-cluster-deploy]$ ceph osd stat
9 osds: 9 up, 9 in; epoch: e37

# 使用 ceph osd status 查看
- `id`: OSD的唯一标识符。
- `host`: OSD所在的主机名
- `used`: OSD已使用的存储容量。
- `avail`: OSD可用的存储容量。
- `wr ops`: OSD每秒写入操作的数量。
- `wr data`: OSD每秒写入数据的数量。
- `rd ops`: OSD每秒读取操作的数量。
- `rd data`: OSD每秒读取数据的数量。
- `state`: OSD的状态,"exists"表示OSD存在,"up"表示OSD正常运行。
[ceph@ceph-deploy ceph-cluster-deploy]$ ceph osd status
+----+------------+-------+-------+--------+---------+--------+---------+-----------+
| id |    host    |  used | avail | wr ops | wr data | rd ops | rd data |   state   |
+----+------------+-------+-------+--------+---------+--------+---------+-----------+
| 0  | ceph-node1 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
| 1  | ceph-node1 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
| 2  | ceph-node1 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
| 3  | ceph-node2 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
| 4  | ceph-node2 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
| 5  | ceph-node2 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
| 6  | ceph-node3 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
| 7  | ceph-node3 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
| 8  | ceph-node3 | 1028M | 4087M |    0   |     0   |    0   |     0   | exists,up |
+----+------------+-------+-------+--------+---------+--------+---------+-----------+

# ceph osd tree 也可以
[root@ceph-node1 ~]# ceph osd tree
ID CLASS WEIGHT  TYPE NAME           STATUS REWEIGHT PRI-AFF 
-1       0.04408 root default                                
-3       0.01469     host ceph-node1                         
 0   hdd 0.00490         osd.0           up  1.00000 1.00000 
 1   hdd 0.00490         osd.1           up  1.00000 1.00000 
 2   hdd 0.00490         osd.2           up  1.00000 1.00000 
-5       0.01469     host ceph-node2                         
 3   hdd 0.00490         osd.3           up  1.00000 1.00000 
 4   hdd 0.00490         osd.4           up  1.00000 1.00000 
 5   hdd 0.00490         osd.5           up  1.00000 1.00000 
-7       0.01469     host ceph-node3                         
 6   hdd 0.00490         osd.6           up  1.00000 1.00000 
 7   hdd 0.00490         osd.7           up  1.00000 1.00000 
 8   hdd 0.00490         osd.8           up  1.00000 1.00000 
 
# 这个是用来查看osd的disk free,类似linux的df
- `ID`: OSD的唯一标识符。
- `CLASS`: OSD的存储类别。
- `WEIGHT`: OSD的权重。
- `REWEIGHT`: OSD的重新加权比例。
- `SIZE`: OSD的总存储容量。
- `RAW USE`: OSD当前使用的原始存储容量。
- `DATA`: OSD数据存储使用量。
- `OMAP`: OSD的OMAP(Object Map)数据存储使用量。
- `META`: OSD元数据存储使用量。
- `AVAIL`: OSD可用的存储容量。
- `%USE`: OSD使用率百分比。
- `VAR`: OSD使用率方差。
- `PGS`: OSD分布的PG(Placement Group)数量。
- `STATUS`: OSD的状态,"up"表示OSD正常运行。
 [root@ceph-node1 ~]# ceph osd df
ID CLASS WEIGHT  REWEIGHT SIZE    USE     DATA    OMAP META  AVAIL   %USE  VAR  PGS 
 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 
 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 
 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 
 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 
 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 
 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 
 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 
 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 
 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 
                    TOTAL  45 GiB 9.0 GiB  42 MiB  0 B 9 GiB  36 GiB 20.11          
MIN/MAX VAR: 1.00/1.00  STDDEV: 0

将ceph-osd服务设置开机启动

根据osd所在节点,添加对应的服务为开机启动

# ceph-node1
systemctl enable ceph-osd@{0,1,2}

# ceph-node2
systemctl enable ceph-osd@{3,4,5}

# ceph-node3
systemctl enable ceph-osd@{6,7,8}

管理相关

从rados中移除osd

移除的时候,最好一个个移除,不然有可能性能跟不上,因为ceph自己去找其他osd的备份来作为主,一旦一次性删除太多就可能出现性能问题。文章来源地址https://www.toymoban.com/news/detail-760877.html

# 停用osd
ceph osd out <osd-id>

# 停止osd服务
systemctl stop ceph-osd@<osd-id>

# 移除osd
ceph osd ourge <osd-id> --yes-i-really-mean-it

# 检查ceph.conf集群配置文件中,是福哦还有对应osd的配置,如有则手动删除、

###### Luminous 之前的版本,移除步骤如下 :
ceph osd crush remove <name>
ceph auth del osd <osd-id>
ceph osd rm <osd-id>

手动测试数据上传、下载

# 通过rados创建pool
rados mkpool <pool-name> [123[ 4]]  create pool <pool-name>'
                                    [with auid 123[and using crush rule 4]]


# 通过ceph 命令创建pool
ceph osd pool create <poolname> <int[0-]> {<int[0-]>} {replicated|erasure} {<erasure_code_profile>}          create pool
 {<rule>} {<int>}    

ceph osd pool  create <pool名> <pg值> <pg备份值>


# 上传文件到指定的pool
[ceph@ceph-deploy ceph-cluster-deploy]$ rados put myfile /etc/fstab -p swq-test
# 列出指定pool中的文件
[ceph@ceph-deploy ceph-cluster-deploy]$ rados ls -p swq-test
myfile

# 下载文件
[ceph@ceph-deploy ceph-cluster-deploy]$ rados get myfile -p swq-test /tmp/my.txt
[ceph@ceph-deploy ceph-cluster-deploy]$ cat /tmp/my.txt 

#
# /etc/fstab
# Created by anaconda on Thu Dec 21 23:51:13 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=4b1bb372-7f34-48f6-8852-036ee6dfd125 /boot  

# 查看文件的映射关系
[ceph@ceph-deploy ceph-cluster-deploy]$ ceph osd map swq-test myfile
osdmap e43 pool 'swq-test' (2) object 'myfile' -> pg 2.423e92f7 (2.17) -> up ([5,6,2], p5) acting ([5,6,2], p5)

# 在哪个pg中?
# 	pg为2的423e92f7中。
# -> pg 2.423e92f7 (2.17) 

# 在哪个osd中?
# 	这里是在5,6,2这3个osd中,主osd为:5
# 	acting是目前活动的osd
# -> up ([5,6,2], p5) acting ([5,6,2], p5)

到了这里,关于ceph集群搭建详细教程(ceph-deploy)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 使用rook搭建Ceph集群

    使用rook搭建Ceph集群

    宿主机: MacBook Pro(Apple M2 Max) VMware Fusion Player 版本 13.0.2  VM软硬件: ubuntu 22.04.2 4核 CPU,5G 内存,40G硬盘 *每台机器分配硬件资源很重要,可以适当超过宿主机的资源量,否则会导致各种问题 IP和角色(163为master,其他为node): 192.168.19.163 k8smaster 192.168.19.161 k8sworker3 192.1

    2024年02月11日
    浏览(18)
  • Hadoop集群搭建安装教程(详细完整)

    Hadoop集群搭建安装教程(详细完整)

    大数据 :最早提出“大数据”时代到来的是全球知名咨询公司麦肯锡,大数据是当前很热的一个词。这几年来,云计算、继而大数据,成了整个社会的热点,大数据究竟是什么东西?有哪些相关技术? Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理

    2024年02月08日
    浏览(9)
  • k8s 集群搭建详细教程

    k8s 集群搭建详细教程

    参考: Kubernetes 文档 / 入门 / 生产环境 / 使用部署工具安装 Kubernetes / 使用 kubeadm 引导集群 / 安装 kubeadm 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令 每台机器 2 GB 或更多的 RAM (如果少于这个数字

    2024年02月01日
    浏览(20)
  • Hadoop 3.2.4 集群搭建详细图文教程

    Hadoop 3.2.4 集群搭建详细图文教程

    目录 一、集群简介 二、Hadoop 集群部署方式  三、集群安装 3.1 集群角色规划  3.2 服务器基础环境准备  3.2.1 环境初始化  3.2.2 ssh 免密登录(在 hadoop01 上执行) 3.2.3 各个节点上安装 JDK 1.8 环境 3.3 安装 Hadoop 3.4 Hadoop 安装包目录结构 ​3.5 编辑 Hadoop 配置文件  3.5.1 hado

    2024年02月09日
    浏览(17)
  • CentOS7下安装ElasticSearch7.6.1详细教程(单机、集群搭建)

    CentOS7下安装ElasticSearch7.6.1详细教程(单机、集群搭建)

    CentOS 7下安装ElasticSearch7.6.1详细教程 ElasticSearch客户端Kibana7.6.1安装教程 ElasticSearch分词器IK安装教程 Elasticsearch-head插件安装教程 想要学习ElasticSearch技术,需要在服务器搭建ElasticSearch环境。 CenOS:7; JDK:1.8; Elasticsearch:7.6.1; ES不能使用root用户来启动,必须使用普通用户来

    2023年04月09日
    浏览(7)
  • 【黑马2023大数据实战教程】使用3台虚拟机搭建大数据集群详细步骤

    忘了记录,原视频链接在这:2023新版黑马程序员大数据入门到实战教程,大数据开发必会的Hadoop、Hive,云平台实战项目全套一网打尽 配置大数据集群主机映射时: vim /etc/hosts 回车后 按shift+A 开始键入模式 然后Esc,输入 :wq 保存。 配置ssh免密登录: 每台都执行: ssh-keygen -t

    2023年04月27日
    浏览(32)
  • ceph部署和使用详细教程

    ceph部署和使用详细教程

    Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。但是在2014年OpenStack火爆的时候、Ceph并不

    2023年04月09日
    浏览(7)
  • Nacos和Eureka比较、统一配置管理、Nacos热更新、多环境配置共享、Nacos集群搭建步骤

    Nacos和Eureka比较、统一配置管理、Nacos热更新、多环境配置共享、Nacos集群搭建步骤

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 在类上加上@RefreshScope 视频地址https://www.bilibili.com/video/BV1LQ4y127n4?p=29spm_id_from=pageDrivervd_source=0a29c2be3bdd946212330ee312ca98b5 比较难,我没怎么记。以后工作需要再来学 16G内存真的跑不动 有需要的可以去看看黑

    2024年01月21日
    浏览(17)
  • hadoop完全分布式集群搭建(超详细)-大数据集群搭建

    hadoop完全分布式集群搭建(超详细)-大数据集群搭建

    本次搭建完全分布式集群用到的环境有: jdk1.8.0 hadoop-2.7.7 本次搭建集群所需环境也给大家准备了,下载链接地址:https://share.weiyun.com/dk7WgaVk 密码:553ubk 本次完全分布式集群搭建需要提前建立好三台虚拟机,我分别把它们的主机名命名为:master,slave1,slave2 一.配置免密登陆 首先

    2024年02月10日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包