B.2. 手动安装 Ceph Manager
通常,在部署 Red Hat Ceph Storage 集群时,Ansible 自动化实用程序会安装 Ceph Manager 守护进程 (ceph-mgr)。但是,如果您不使用 Ansible 管理红帽 Ceph 存储,您可以手动安装 Ceph Manager。红帽建议在同一节点上并置 Ceph 管理器和 Ceph 监控守护进程。
先决条件
- 正常工作的 Red Hat Ceph Storage 集群
-
root或sudo访问权限 -
rhel-7-server-rhceph-3-mon-els-rpms存储库已启用 -
如果使用防火墙,需要在公共网络上打开端口
6800-7300
流程
在要部署 ceph-mgr 的节点上,以 root 用户身份或通过 sudo 实用程序,使用以下命令。
安装
ceph-mgr软件包:sudo apt-get install ceph-mgr
[user@node1 ~]$ sudo apt-get install ceph-mgrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
/var/lib/ceph/mgr/ceph-hostname/目录:mkdir /var/lib/ceph/mgr/ceph-hostname
mkdir /var/lib/ceph/mgr/ceph-hostnameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用部署
ceph-mgr守护进程的节点的主机名替换 hostname,例如:sudo mkdir /var/lib/ceph/mgr/ceph-node1
[user@node1 ~]$ sudo mkdir /var/lib/ceph/mgr/ceph-node1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在新创建的目录中,为
ceph-mgr守护进程创建一个身份验证密钥:sudo ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-node1/keyring
[user@node1 ~]$ sudo ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-node1/keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
/var/lib/ceph/mgr/目录的所有者和组更改为ceph:ceph:sudo chown -R ceph:ceph /var/lib/ceph/mgr
[user@node1 ~]$ sudo chown -R ceph:ceph /var/lib/ceph/mgrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用
ceph-mgr目标:sudo systemctl enable ceph-mgr.target
[user@node1 ~]$ sudo systemctl enable ceph-mgr.targetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用并启动
ceph-mgr实例:systemctl enable ceph-mgr@hostname systemctl start ceph-mgr@hostname
systemctl enable ceph-mgr@hostname systemctl start ceph-mgr@hostnameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用部署
ceph-mgr的节点的主机名替换 hostname,例如:sudo systemctl enable ceph-mgr@node1 sudo systemctl start ceph-mgr@node1
[user@node1 ~]$ sudo systemctl enable ceph-mgr@node1 [user@node1 ~]$ sudo systemctl start ceph-mgr@node1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
ceph-mgr守护进程是否已成功启动:ceph -s
ceph -sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出将在
services部分下包括类似如下的行:mgr: node1(active)
mgr: node1(active)Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
安装更多
ceph-mgr守护进程以作为备用守护进程(如果当前活跃守护进程失败)处于活跃状态。
OSD Bootstrapping
运行初始监控器后,您可以开始添加对象存储设备 (OSD)。直到有足够的 OSD 来处理对象的副本数时,您的集群才会达到 active + clean 状态。
对象的默认副本数为三个。至少需要三个 OSD 节点:但是,如果您只需要一个对象的两个副本,因此仅添加两个 OSD 节点,然后更新 Ceph 配置文件中的 osd pool default size 和 osd pool default min size 设置。
如需了解更多详细信息,请参阅 Red Hat Ceph Storage 3 配置指南中的OSD 配置参考一节。
在引导初始监控器后,集群具有默认的 CRUSH map。但是,CRUSH map 没有任何 Ceph OSD 守护进程映射到 Ceph 节点。
要添加 OSD 到集群并更新默认的 CRUSH map,请在每个 OSD 节点上执行以下内容:
启用 Red Hat Ceph Storage 3 OSD 存储库:
sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/OSD $(lsb_release -sc) main | tee /etc/apt/sources.list.d/OSD.list' sudo bash -c 'wget -O - https://www.redhat.com/security/fd431d51.txt | apt-key add -' sudo apt-get update
$ sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/OSD $(lsb_release -sc) main | tee /etc/apt/sources.list.d/OSD.list' $ sudo bash -c 'wget -O - https://www.redhat.com/security/fd431d51.txt | apt-key add -' $ sudo apt-get updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以
root用户身份,在 Ceph OSD 节点上安装ceph-osd软件包:sudo apt-get install ceph-osd
$ sudo apt-get install ceph-osdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Ceph 配置文件和管理密钥环文件从初始 Monitor 节点复制到 OSD 节点:
语法
scp <user_name>@<monitor_host_name>:<path_on_remote_system> <path_to_local_file>
# scp <user_name>@<monitor_host_name>:<path_on_remote_system> <path_to_local_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
scp root@node1:/etc/ceph/ceph.conf /etc/ceph scp root@node1:/etc/ceph/ceph.client.admin.keyring /etc/ceph
# scp root@node1:/etc/ceph/ceph.conf /etc/ceph # scp root@node1:/etc/ceph/ceph.client.admin.keyring /etc/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 OSD 生成通用唯一标识符 (UUID):
uuidgen
$ uuidgen b367c360-b364-4b1d-8fc6-09408a9cda7aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以
root用户身份,创建 OSD 实例:语法
ceph osd create <uuid> [<osd_id>]
# ceph osd create <uuid> [<osd_id>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph osd create b367c360-b364-4b1d-8fc6-09408a9cda7a
# ceph osd create b367c360-b364-4b1d-8fc6-09408a9cda7a 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此命令输出后续步骤所需的 OSD 编号标识符。
以
root用户身份,为新 OSD 创建默认目录:语法
mkdir /var/lib/ceph/osd/<cluster_name>-<osd_id>
# mkdir /var/lib/ceph/osd/<cluster_name>-<osd_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
mkdir /var/lib/ceph/osd/ceph-0
# mkdir /var/lib/ceph/osd/ceph-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
root用户身份,准备好将驱动器用作 OSD,并将它挂载到您刚才创建的目录中。为 Ceph 数据和日志创建一个分区。日志和数据分区可以位于同一磁盘上。这个示例使用 15 GB 磁盘:语法
parted <path_to_disk> mklabel gpt parted <path_to_disk> mkpart primary 1 10000 mkfs -t <fstype> <path_to_partition> mount -o noatime <path_to_partition> /var/lib/ceph/osd/<cluster_name>-<osd_id> echo "<path_to_partition> /var/lib/ceph/osd/<cluster_name>-<osd_id> xfs defaults,noatime 1 2" >> /etc/fstab
# parted <path_to_disk> mklabel gpt # parted <path_to_disk> mkpart primary 1 10000 # mkfs -t <fstype> <path_to_partition> # mount -o noatime <path_to_partition> /var/lib/ceph/osd/<cluster_name>-<osd_id> # echo "<path_to_partition> /var/lib/ceph/osd/<cluster_name>-<osd_id> xfs defaults,noatime 1 2" >> /etc/fstabCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
root用户身份,初始化 OSD 数据目录:语法
ceph-osd -i <osd_id> --mkfs --mkkey --osd-uuid <uuid>
# ceph-osd -i <osd_id> --mkfs --mkkey --osd-uuid <uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph-osd -i 0 --mkfs --mkkey --osd-uuid b367c360-b364-4b1d-8fc6-09408a9cda7a
# ceph-osd -i 0 --mkfs --mkkey --osd-uuid b367c360-b364-4b1d-8fc6-09408a9cda7a ... auth: error reading file: /var/lib/ceph/osd/ceph-0/keyring: can't open /var/lib/ceph/osd/ceph-0/keyring: (2) No such file or directory ... created new key in keyring /var/lib/ceph/osd/ceph-0/keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在使用
--mkkey选项运行ceph-osd之前,目录必须为空。如果您有自定义集群名称,ceph-osd实用程序需要--cluster选项。以
root身份,注册 OSD 身份验证密钥。如果集群名称与ceph不同,请插入集群名称:语法
ceph auth add osd.<osd_id> osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/<cluster_name>-<osd_id>/keyring
# ceph auth add osd.<osd_id> osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/<cluster_name>-<osd_id>/keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring
# ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring added key for osd.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以
root用户身份,将 OSD 节点添加到 CRUSH map:语法
ceph [--cluster <cluster_name>] osd crush add-bucket <host_name> host
# ceph [--cluster <cluster_name>] osd crush add-bucket <host_name> hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph osd crush add-bucket node2 host
# ceph osd crush add-bucket node2 hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以
root用户身份,将 OSD 节点放在defaultCRUSH 树下:语法
ceph [--cluster <cluster_name>] osd crush move <host_name> root=default
# ceph [--cluster <cluster_name>] osd crush move <host_name> root=defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph osd crush move node2 root=default
# ceph osd crush move node2 root=defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以
root用户身份,将 OSD 磁盘添加到 CRUSH map语法
ceph [--cluster <cluster_name>] osd crush add osd.<osd_id> <weight> [<bucket_type>=<bucket-name> ...]
# ceph [--cluster <cluster_name>] osd crush add osd.<osd_id> <weight> [<bucket_type>=<bucket-name> ...]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
ceph osd crush add osd.0 1.0 host=node2
# ceph osd crush add osd.0 1.0 host=node2 add item id 0 name 'osd.0' weight 1 at location {host=node2} to crush mapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您也可以解译 CRUSH map,并将 OSD 添加到设备列表中。将 OSD 节点添加为 bucket,然后将设备添加为 OSD 节点中的项目,为 OSD 分配一个权重,重新编译 CRUSH map,并且设置 CRUSH map。如需了解更多详细信息,请参阅 Red Hat Ceph Storage 3 的存储策略指南中的编辑 CRUSH map 部分。
以
root用户身份,更新新创建的目录和文件的所有者和组权限:语法
chown -R <owner>:<group> <path_to_directory>
# chown -R <owner>:<group> <path_to_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
chown -R ceph:ceph /var/lib/ceph/osd chown -R ceph:ceph /var/log/ceph chown -R ceph:ceph /var/run/ceph chown -R ceph:ceph /etc/ceph
# chown -R ceph:ceph /var/lib/ceph/osd # chown -R ceph:ceph /var/log/ceph # chown -R ceph:ceph /var/run/ceph # chown -R ceph:ceph /etc/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于带有自定义名称的存储集群,以
root用户身份在/etc/default/ceph文件中添加以下行:语法
sudo echo "CLUSTER=<custom_cluster_name>" >> /etc/default/ceph
$ sudo echo "CLUSTER=<custom_cluster_name>" >> /etc/default/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
sudo echo "CLUSTER=test123" >> /etc/default/ceph
$ sudo echo "CLUSTER=test123" >> /etc/default/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow OSD 节点位于 Ceph 存储集群配置中。不过,OSD 守护进程为
down和in。新 OSD 的状态必须为up后才能开始接收数据。以root用户身份,启用并启动 OSD 过程:语法
sudo systemctl enable ceph-osd.target sudo systemctl enable ceph-osd@<osd_id> sudo systemctl start ceph-osd@<osd_id>
$ sudo systemctl enable ceph-osd.target $ sudo systemctl enable ceph-osd@<osd_id> $ sudo systemctl start ceph-osd@<osd_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
sudo systemctl enable ceph-osd.target sudo systemctl enable ceph-osd@0 sudo systemctl start ceph-osd@0
$ sudo systemctl enable ceph-osd.target $ sudo systemctl enable ceph-osd@0 $ sudo systemctl start ceph-osd@0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 OSD 守护进程后,它就为
up和in。
现在,您已启动并运行 Monitor 和一些 OSD。您可以执行以下命令来观察放置组对等点:
ceph -w
$ ceph -w
要查看 OSD 树,请执行以下命令:
ceph osd tree
$ ceph osd tree
示例
若要通过添加新 OSD 到存储集群来扩展存储容量,请参阅 Red Hat Ceph Storage 3 管理指南中的添加 OSD 部分。