【ceph运维】不含秘钥nautilus版ceph集群手动部署
mon部署
1. 为集群生成一个唯一的ID(即fsid)。
uuidgen
2. Create a default data directory (or directories) on the monitor host(s).
sudo mkdir /var/lib/ceph/mon/{cluster-name}-{hostname}
例如:
sudo -u ceph mkdir /var/lib/ceph/mon/ceph-node01
3. Generate a monitor map using the hostname(s), host IP address(es) and the FSID. Save it as /tmp/monmap
:
monmaptool --create --add {hostname} {ip-address} --fsid {uuid} /tmp/monmap
例如:
monmaptool --create --addv cephqa04 [v2:192.168.0.2:3300,v1:192.168.0.1:6789] \
--addv cephqa05 [v2:192.168.0.2:3300,v1:192.168.0.2:6789] \
--addv cephqa07 [v2:192.168.0.3:3300,v1:192.168.0.3:6789] \
--fsid 0e80c6ce-8894-4022-9589-5b6d9b01a5a0 /tmp/monmap
4. Populate the monitor daemon(s) with the monitor map.
sudo -u ceph ceph-mon [--cluster {cluster-name}] --mkfs -i {hostname} --monmap /tmp/monmap
例如:
sudo -u ceph ceph-mon --mkfs -i node01 --monmap /tmp/monmap
5. 启动monitor进程:
sudo systemctl start ceph-mon@node01
osd部署
1. 部署osd
ceph-volume lvm create --bluestore --data /dev/sdx --block.wal /dev/nsdy --block.db /dev/sdz
ceph-volume lvm create --bluestore --data /dev/sdx --block.db /dev/sdy
ceph-volume lvm create --bluestore --data /dev/sdx
【注意】
1. 如果要重建osd
ceph-volume lvm zap /dev/sdc --destroy
2. 如果遇到逻辑卷无法删除
dmsetup remove {lv name}
注意:创建物理卷出现如下错误 Can't initialize physical volume的解决方法: pvcreate -ff -y /dev/sdb
1. Ceph 创建 OSD 报错 ‘GPT headers found, they must be removed’ 的处理:
GPT headers found, they must be removed
,发生原因应该是之前磁盘被分区过,虽然删掉了分区,但是还存在 GPT 数据结构,使用 sgdisk 命令进行清除。sgdisk --zap-all /dev/sdX
部署mgr
执行命令:
ceph auth get-or-create mgr.cephqa07 mon 'allow profile mgr'
执行命令:
systemctl start ceph-mgr@mgr_id
部署rgw
方法1:
在集群中创建keyring:
sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring
sudo chmod +r /etc/ceph/ceph.client.radosgw.keyring
生成ceph-radosgw服务对应的用户和key:
ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node1 --gen-key
添加用户访问权限:
ceph-authtool -n client.rgw.node1 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring
将keyring导入集群中:
ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node1 -i /etc/ceph/ceph.client.radosgw.keyring
方法2:
1. 执行命令:
ceph auth get-or-create client.rgw.cephqaxx.rgw1 mon "allow rw" osd "allow rwx"
2. 修改ceph.conf 文件:/etc/ceph/ceph.conf
3. 启动radosgw进程:
systemctl start ceph-radosgw@rgw.cephqaxx.rgw1
部署mds
1. 创建mds数据目录:
mkdir -p /var/lib/ceph/mds/{cluster-name}-{id}
例如:
mkdir -p /var/lib/ceph/mds/ceph-node01
2. 创造一个 keyring:
ceph-authtool --create-keyring /var/lib/ceph/mds/{cluster-name}-{id}/keyring --gen-key -n mds.{id}
例如:
ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-node01/keyring --gen-key -n mds.node01
3. 导入keyring并设置caps。
ceph auth add mds.{id} osd "allow rwx" mds "allow *" mon "allow profile mds" -i /var/lib/ceph/mds/{cluster}-{id}/keyring
例如:
ceph auth add mds.node01 osd "allow rwx" mds "allow *" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-node01/keyring
4. cephfs 需要两个pool池,cephfs_data 和 cephfs_metadata,分别存储文件数据和文件元数据
创造数据 pool
ceph osd pool create cephfs_data 128
创造元数据pool
ceph osd pool create cephfs_metadata 128
启动pool
ceph fs new cephfs cephfs_metadata cephfs_data # 元数据池在前,数据池在后
查看cephfs
ceph fs ls
4 创建一个 CephFS, 名字为 cephfs。
语法格式如下:
ceph fs authorize <fs_name> client.<client_id> <path-in-cephfs> rw
例如:
ceph fs new cephfs cephfs_metadata cephfs_data
验证至少有一个 MDS 已经进入 Active 状态
ceph fs status cephfs
运行结果如下:
[root@node01 ceph]# ceph fs status cephfs
cephfs - 2 clients
======
+------+--------+--------+---------------+-------+-------+
| Rank | State | MDS | Activity | dns | inos |
+------+--------+--------+---------------+-------+-------+
| 0 | active | node01 | Reqs: 0 /s | 22 | 16 |
+------+--------+--------+---------------+-------+-------+
+-----------------+----------+-------+-------+
| Pool | type | used | avail |
+-----------------+----------+-------+-------+
| cephfs_metadata | metadata | 2304k | 51.3G |
| cephfs_data | data | 467M | 51.3G |
+-----------------+----------+-------+-------+
+-------------+
| Standby MDS |
+-------------+
+-------------+
MDS version: ceph version 14.2.10-4-g005cd9d2a2d (005cd9d2a2dcae42ed1b980c1b1629897c996cc7) nautilus (stable)
[root@node01 ceph]#
在 Monitor 上, 创建一个用户,用于访问CephFs
ceph auth get-or-create client.cephfs mon 'allow r' mds 'allow rw' osd 'allow rw pool=cephfs_data, allow rw pool=cephfs_metadata'
客户端挂载
1. 基于内核
2. 基于ceph-fuse工具
yum install ceph-fuse
ceph-fuse -n client.egon -m mon01:6789,mon02:6789,mon03:6789 /mnt -o nonempty
注意:挂载源为文件系统的根,/mnt为挂载点,挂在时,如果/mnt不为空会挂载失败,此时可以清空,或者指定-o nonempty,然后重新挂载。