|
@@ -0,0 +1,128 @@
|
|
|
+# Ceph Linux 集群搭建
|
|
|
+
|
|
|
+## Ceph集群搭建
|
|
|
+
|
|
|
+### 虚拟化支持
|
|
|
+
|
|
|
+当为QEMU/KVM,XEN,VMWare,LXC,VirtualBox,etc.Examples of Cloud Platforms include OpenStack,CloudStack,OpenNebula,etc.做后端存储时要先安装虚拟化工具:qemu、libvirt。
|
|
|
+
|
|
|
+#### QEMU
|
|
|
+
|
|
|
+**RHEL系**
|
|
|
+
|
|
|
+```bash
|
|
|
+$ yum install qemu-kvm qemu-kvm-tools qemu-img
|
|
|
+
|
|
|
+# 实际安装时软件包
|
|
|
+$ yum install qemu qemu-img
|
|
|
+```
|
|
|
+
|
|
|
+#### libvirt
|
|
|
+
|
|
|
+**RHEL系**
|
|
|
+
|
|
|
+```bash
|
|
|
+yum install libvirt
|
|
|
+```
|
|
|
+
|
|
|
+### 节点配置
|
|
|
+
|
|
|
+每个ceph集群都需要一个监控节点和OSD节点。
|
|
|
+
|
|
|
+#### 环境准备
|
|
|
+
|
|
|
+1. Cluster Name 节点名称
|
|
|
+2. 监视器名(一般使用短主机名)
|
|
|
+3. SSH key
|
|
|
+
|
|
|
+#### 创建监视器
|
|
|
+
|
|
|
+```bash
|
|
|
+# 登录监控节点
|
|
|
+# 创建配置目录,一般为/etc/ceph
|
|
|
+
|
|
|
+# 创建ceph.conf ceph配置文件
|
|
|
+$ vim /etc/ceph/ceph.conf
|
|
|
+[global]
|
|
|
+
|
|
|
+# 创建唯一ID添加到配置文件
|
|
|
+$ uuidgen
|
|
|
+[global]
|
|
|
+fsid = {UUID}
|
|
|
+
|
|
|
+# 添加监视器主机到配置文件
|
|
|
+mon install members = {hostname}[,{hostname}]
|
|
|
+
|
|
|
+# 添加监视器IP到配置文件
|
|
|
+mon host = {ip-address}[,{ip-address}]
|
|
|
+
|
|
|
+# 创建秘钥环并生成监视器秘钥
|
|
|
+$ ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
|
|
|
+
|
|
|
+# 创建管理员秘钥环并添加客户端
|
|
|
+$ ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
|
|
|
+
|
|
|
+# 创建OSD秘钥环并添加客户端
|
|
|
+$ ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
|
|
|
+
|
|
|
+# 将创建的秘钥添加到监视器秘钥中
|
|
|
+$ ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
|
|
|
+$ ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
|
|
|
+
|
|
|
+###################################
|
|
|
+# 实操
|
|
|
+$ ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
|
|
|
+creating /tmp/ceph.mon.keyring
|
|
|
+$ ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
|
|
|
+creating /etc/ceph/ceph.client.admin.keyring
|
|
|
+$ ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
|
|
|
+creating /var/lib/ceph/bootstrap-osd/ceph.keyring
|
|
|
+$ ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
|
|
|
+importing contents of /etc/ceph/ceph.client.admin.keyring into /tmp/ceph.mon.keyring
|
|
|
+$ ceph-authtool /tmp/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
|
|
|
+importing contents of /var/lib/ceph/bootstrap-osd/ceph.keyring into /tmp/ceph.mon.keyring
|
|
|
+###################################
|
|
|
+
|
|
|
+# 更改秘钥权限
|
|
|
+$ chown ceph:ceph /tmp/ceph.mon.keyring
|
|
|
+
|
|
|
+# 创建监视器 主机名 IP fsid
|
|
|
+$ monmaptool --create --add {hostname} {ip-address} --fsid {uuid} /tmp/monmap
|
|
|
+
|
|
|
+##########################
|
|
|
+# 实操
|
|
|
+$ monmaptool --create --add master 172.89.0.13 --fsid a1bbf649-8aca-46ff-b31a-677612a67336 /tmp/monmap
|
|
|
+monmaptool: monmap file /tmp/monmap
|
|
|
+monmaptool: set fsid to a1bbf649-8aca-46ff-b31a-677612a67336
|
|
|
+monmaptool: writing epoch 0 to /tmp/monmap (1 monitors)
|
|
|
+#################
|
|
|
+
|
|
|
+# 创建数据目录
|
|
|
+$ mkdir /var/lib/ceph/mon/{cluster-name}-{hostname}
|
|
|
+
|
|
|
+# 创建守护程序
|
|
|
+$ ceph-mon [--cluster {cluster-name}] --mkfs -i {hostname} --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
|
|
|
+
|
|
|
+# 配置ceph.conf文件
|
|
|
+[global]
|
|
|
+fsid = {cluster-id}
|
|
|
+mon initial members = {hostname}[, {hostname}]
|
|
|
+mon host = {ip-address}[, {ip-address}]
|
|
|
+public network = {network}[, {network}]
|
|
|
+cluster network = {network}[, {network}]
|
|
|
+auth cluster required = cephx
|
|
|
+auth service required = cephx
|
|
|
+auth client required = cephx
|
|
|
+osd journal size = {n}
|
|
|
+osd pool default size = {n} # Write an object n times.
|
|
|
+osd pool default min size = {n} # Allow writing n copies in a degraded state.
|
|
|
+osd pool default pg num = {n}
|
|
|
+osd pool default pgp num = {n}
|
|
|
+osd crush chooseleaf type = {n}
|
|
|
+
|
|
|
+# 开启集群
|
|
|
+$ systemctl start ceph@{hostname}
|
|
|
+
|
|
|
+# 检查集群状态
|
|
|
+ceph -s
|
|
|
+```
|