附录 E. 手动安装 Ceph 对象网关
Ceph 对象网关(也称为 RADOS 网关)是在 librados API 基础上构建的对象存储接口,为应用提供 Ceph 存储集群的 RESTful 网关。
先决条件
-
正在运行的 Ceph 存储集群,最好处于
active + clean状态。 - 执行 第 2 章 安装 Red Hat Ceph Storage 的要求 中列出的任务。
流程
启用 Red Hat Ceph Storage 3 Tools 存储库:
sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/Tools $(lsb_release -sc) main | tee /etc/apt/sources.list.d/Tools.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/Tools $(lsb_release -sc) main | tee /etc/apt/sources.list.d/Tools.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 在 Object Gateway 节点上安装
theradosgw软件包:sudo apt-get install radosgw
$ sudo apt-get install radosgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在初始 monitor 节点上,执行以下步骤:
更新 Ceph 配置文件,如下所示:
[client.rgw.<obj_gw_hostname>] host = <obj_gw_hostname> rgw frontends = "civetweb port=80" rgw dns name = <obj_gw_hostname>.example.com
[client.rgw.<obj_gw_hostname>] host = <obj_gw_hostname> rgw frontends = "civetweb port=80" rgw dns name = <obj_gw_hostname>.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
<obj_gw_hostname>是网关节点的短主机名。要查看短主机名,请使用hostname -s命令。将更新的配置文件复制到新的对象网关节点和 Ceph 存储集群中的所有其他节点:
语法
sudo scp /etc/ceph/<cluster_name>.conf <user_name>@<target_host_name>:/etc/ceph
$ sudo scp /etc/ceph/<cluster_name>.conf <user_name>@<target_host_name>:/etc/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
sudo scp /etc/ceph/ceph.conf root@node1:/etc/ceph/
$ sudo scp /etc/ceph/ceph.conf root@node1:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<cluster_name>.client.admin.keyring文件复制到新的对象网关节点:语法
sudo scp /etc/ceph/<cluster_name>.client.admin.keyring <user_name>@<target_host_name>:/etc/ceph/
$ sudo scp /etc/ceph/<cluster_name>.client.admin.keyring <user_name>@<target_host_name>:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
sudo scp /etc/ceph/ceph.client.admin.keyring root@node1:/etc/ceph/
$ sudo scp /etc/ceph/ceph.client.admin.keyring root@node1:/etc/ceph/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在对象网关节点上,创建数据目录:
语法
sudo mkdir -p /var/lib/ceph/radosgw/<cluster_name>-rgw.`hostname -s`
$ sudo mkdir -p /var/lib/ceph/radosgw/<cluster_name>-rgw.`hostname -s`Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
sudo mkdir -p /var/lib/ceph/radosgw/ceph-rgw.`hostname -s`
$ sudo mkdir -p /var/lib/ceph/radosgw/ceph-rgw.`hostname -s`Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在对象网关节点上,添加一个用户和密钥环来 bootstrap 对象网关:
语法
sudo ceph auth get-or-create client.rgw.`hostname -s` osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/<cluster_name>-rgw.`hostname -s`/keyring
$ sudo ceph auth get-or-create client.rgw.`hostname -s` osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/<cluster_name>-rgw.`hostname -s`/keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
sudo ceph auth get-or-create client.rgw.`hostname -s` osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/ceph-rgw.`hostname -s`/keyring
$ sudo ceph auth get-or-create client.rgw.`hostname -s` osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/ceph-rgw.`hostname -s`/keyringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要为网关密钥提供功能时,您必须提供读取功能。但是,提供 monitor 写入功能是可选的;如果您提供此功能,Ceph 对象网关将能够自动创建池。
在这种情况下,请确保在池中指定合理的 PG 数量。否则,网关使用默认编号,该编号可能不适合您的需要。有关详细信息,请参阅每个池计算器的 Ceph Placement Group (PG)。
在对象网关节点上,创建
done文件:语法
sudo touch /var/lib/ceph/radosgw/<cluster_name>-rgw.`hostname -s`/done
$ sudo touch /var/lib/ceph/radosgw/<cluster_name>-rgw.`hostname -s`/doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
sudo touch /var/lib/ceph/radosgw/ceph-rgw.`hostname -s`/done
$ sudo touch /var/lib/ceph/radosgw/ceph-rgw.`hostname -s`/doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在对象网关节点上,更改所有者和组权限:
sudo chown -R ceph:ceph /var/lib/ceph/radosgw sudo chown -R ceph:ceph /var/log/ceph sudo chown -R ceph:ceph /var/run/ceph sudo chown -R ceph:ceph /etc/ceph
$ sudo chown -R ceph:ceph /var/lib/ceph/radosgw $ sudo chown -R ceph:ceph /var/log/ceph $ sudo chown -R ceph:ceph /var/run/ceph $ sudo chown -R ceph:ceph /etc/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于带有自定义名称的存储集群,以
root用户身份添加以下行:语法
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 在 Object Gateway 节点上打开 TCP 端口 80:
sudo iptables -I INPUT 1 -i <network_interface> -p tcp -s <ip_address>/<netmask> --dport 80 -j ACCEPT
$ sudo iptables -I INPUT 1 -i <network_interface> -p tcp -s <ip_address>/<netmask> --dport 80 -j ACCEPTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在对象网关节点上,启动并启用
ceph-radosgw进程:语法
sudo systemctl enable ceph-radosgw.target sudo systemctl enable ceph-radosgw@rgw.<rgw_hostname> sudo systemctl start ceph-radosgw@rgw.<rgw_hostname>
$ sudo systemctl enable ceph-radosgw.target $ sudo systemctl enable ceph-radosgw@rgw.<rgw_hostname> $ sudo systemctl start ceph-radosgw@rgw.<rgw_hostname>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
sudo systemctl enable ceph-radosgw.target sudo systemctl enable ceph-radosgw@rgw.node1 sudo systemctl start ceph-radosgw@rgw.node1
$ sudo systemctl enable ceph-radosgw.target $ sudo systemctl enable ceph-radosgw@rgw.node1 $ sudo systemctl start ceph-radosgw@rgw.node1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
安装后,如果在 monitor 上设置了写入功能,Ceph 对象网关会自动创建池。有关手动创建 池 的信息,请参阅存储策略指南中的池章节。