在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开发一个分布式文件系统需要多方努力,但是如果能准确地解决问题,它就是无价的。Ceph 的目标简单地定义为:可轻松扩展到数 PB 容量,对多种工作负载的高性能(每秒输入/输出操作[IOPS]和带宽)。 如图所示,客户使用元数据服务器,执行元数据操作(来确定数据位置)。元数据服务器管理数据位置,以及在何处存储新数据。值得注意的是,元数据存储在一个存储集群(标为 “元数据 I/O”)。实际的文件 I/O 发生在客户和对象存储集群之间。这样一来,更高层次的 POSIX 功能(例如,打开、关闭、重命名)就由元数据服务器管理,不过 POSIX 功能(例如读和写)则直接由对象存储集群管理。 示例系统资源 配置 Hosts 要在每个节点上配置 hosts 条目,要像下面这样打开默认的 hosts 配置文件(LCTT 译注:或者做相应的 DNS 解析)。 复制代码 代码如下:# vi /etc/hosts 45.79.136.163 ceph-storage ceph-storage.linoxide.com 45.79.171.138 ceph-node ceph-node.linoxide.com 安装 VMware 工具 工作环境是 VMWare 虚拟环境时,推荐你安装它的 open VM 工具。你可以使用下面的命令安装。 复制代码 代码如下:# yum install -y open-vm-tools 配置防火墙 如果你正在使用启用了防火墙的限制性环境,确保在你的 Ceph 存储管理节点和客户端节点中开放了以下的端口。 你必须在你的 Admin Calamari 节点开放 80、2003、以及4505-4506 端口,并且允许通过 80 号端口访问到 Ceph 或 Calamari 管理节点,以便你网络中的客户端能访问 Calamari web 用户界面。 你可以使用下面的命令在 CentOS 7 中启动并启用防火墙。 复制代码 代码如下:# systemctl start firewalld # systemctl enable firewalld 运行以下命令使 Admin Calamari 节点开放上面提到的端口。 复制代码 代码如下:# firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --zone=public --add-port=2003/tcp --permanent # firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent # firewall-cmd --reload 在 Ceph Monitor 节点,你要在防火墙中允许通过以下端口。 复制代码 代码如下:# firewall-cmd --zone=public --add-port=6789/tcp --permanent 然后允许以下默认端口列表,以便能和客户端以及监控节点交互,并发送数据到其它 OSD。 复制代码 代码如下:# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent 如果你工作在非生产环境,建议你停用防火墙以及 SELinux 设置,在我们的测试环境中我们会停用防火墙以及 SELinux。 复制代码 代码如下:# systemctl stop firewalld # systemctl disable firewalld 系统升级 现在升级你的系统并重启使所需更改生效。 复制代码 代码如下:# yum update # shutdown -r 0 设置 Ceph 用户 现在我们会新建一个单独的 sudo 用户用于在每个节点安装 ceph-deploy工具,并允许该用户无密码访问每个节点,因为它需要在 Ceph 节点上安装软件和配置文件而不会有输入密码提示。 运行下面的命令在 ceph-storage 主机上新建有独立 home 目录的新用户。 复制代码 代码如下:[root@ceph-storage ~]# useradd -d /home/ceph -m ceph [root@ceph-storage ~]# passwd ceph 节点中新建的每个用户都要有 sudo 权限,你可以使用下面展示的命令赋予 sudo 权限。 复制代码 代码如下:[root@ceph-storage ~]# echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph ceph ALL = (root) NOPASSWD:ALL [root@ceph-storage ~]# sudo chmod 0440 /etc/sudoers.d/ceph 设置 SSH 密钥 现在我们会在 Ceph 管理节点生成 ssh 密钥并把密钥复制到每个 Ceph 集群节点。 在 ceph-node 运行下面的命令复制它的 ssh 密钥到 ceph-storage。 复制代码 代码如下:[root@ceph-node ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 5b:*:*:*:*:*:*:*:*:*:c9 root@ceph-node The key's randomart image is: +--[ RSA 2048]----+ 复制代码 代码如下:[root@ceph-node ~]# ssh-copy-id ceph@ceph-storage 配置 PID 数目 如下图所示通过编辑系统配置文件配置该值为一个更大的数。 配置管理节点服务器 复制代码 代码如下:# vim /etc/hosts ceph-storage 45.79.136.163 ceph-node 45.79.171.138 运行下面的命令添加它的库。 复制代码 代码如下:# rpm -Uhv http://ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm 或者创建一个新文件并更新 Ceph 库参数,别忘了替换你当前的 Release 和版本号。 复制代码 代码如下:[root@ceph-storage ~]# vi /etc/yum.repos.d/ceph.repo [ceph-noarch] name=Ceph noarch packages baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc 之后更新你的系统并安装 ceph-deploy 软件包。 安装 ceph-deploy 软件包 复制代码 代码如下:#yum update -y && yum install ceph-deploy -y 配置集群 使用下面的命令在 ceph 管理节点上新建一个目录并进入新目录,用于收集所有输出文件和日志。 复制代码 代码如下:# mkdir ~/ceph-cluster # cd ~/ceph-cluster # ceph-deploy new storage 如果成功执行了上面的命令,你会看到它新建了配置文件。 现在配置 Ceph 默认的配置文件,用任意编辑器打开它并在会影响你公共网络的 global 参数下面添加以下两行。 复制代码 代码如下:# vim ceph.conf osd pool default size = 1 public network = 45.79.0.0/16 安装 Ceph 现在我们准备在和 Ceph 集群关联的每个节点上安装 Ceph。我们使用下面的命令在 ceph-storage 和 ceph-node 上安装 Ceph。 复制代码 代码如下:# ceph-deploy install ceph-node ceph-storage 处理所有所需仓库和安装所需软件包会需要一些时间。 当两个节点上的 ceph 安装过程都完成后,我们下一步会通过在相同节点上运行以下命令创建监视器并收集密钥。 复制代码 代码如下:# ceph-deploy mon create-initial 设置 OSD 和 OSD 守护进程 复制代码 代码如下:# ceph-deploy disk list ceph-storage 结果中会列出你存储节点中使用的磁盘,你会用它们来创建 OSD。让我们运行以下命令,请使用你的磁盘名称。 复制代码 代码如下:# ceph-deploy disk zap storage:sda # ceph-deploy disk zap storage:sdb 为了最后完成 OSD 配置,运行下面的命令配置日志磁盘以及数据磁盘。 复制代码 代码如下:# ceph-deploy osd prepare storage:sdb:/dev/sda # ceph-deploy osd activate storage:/dev/sdb1:/dev/sda1 你需要在所有节点上运行相同的命令,它会清除你磁盘上的所有东西。之后为了集群能运转起来,我们需要使用以下命令从 ceph 管理节点复制不同的密钥和配置文件到所有相关节点。 复制代码 代码如下:# ceph-deploy admin ceph-node ceph-storage 测试 Ceph 我们快完成了 Ceph 集群设置,让我们在 ceph 管理节点上运行下面的命令检查正在运行的 ceph 状态。 复制代码 代码如下:# ceph status # ceph health HEALTH_OK 如果你在 ceph status 中没有看到任何错误信息,就意味着你成功地在 CentOS 7 上安装了 ceph 存储集群。 |
请发表评论