本文将向您介绍如何在CentOS 8 Linux服务器上安装和配置Ceph存储集群,在CentOS 8上安装的Ceph 15(Octopus)存储集群将使用Ansible作为部署的自动化方法。我们在CentOS 8上的Ceph存储集群安装基于以下系统设计,如下图所示,其中cephadmin节点将用于在CentOS 8上部署Ceph存储集群:
步骤1:准备所有节点:ceph-ansible,OSD,MON,MGR,MDS 我们需要按照以下几个步骤准备所有节点。 1]、在每台服务器上设置正确的主机名,参考在RHEL 8系统上设置主机名和时区。 2]、设置正确的时间并配置实时NTP服务,参考在RHEL 8系统上使用Chrony配置NTP服务器。 3]、将具有IP地址的主机名添加到DNS服务器或更新所有服务器上的/etc/hosts。 每个主机上的/etc/hosts内容示例: sudo tee -a /etc/hosts<<EOF 192.168.10.10 cephadmin 192.168.10.11 cephmon01 192.168.10.12 cephmon02 192.168.10.13 cephmon03 192.168.10.14 cephosd01 192.168.10.15 cephosd02 192.168.10.16 cephosd03 EOF 完成上述任务后,请安装基本软件包: sudo dnf update sudo dnf install vim bash-completion tmux 升级后重新启动每个服务器: sudo dnf -y update && sudo reboot
步骤2:准备Ceph管理节点 登录到管理节点: $ ssh root@cephadmin 添加EPEL存储库: sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf config-manager --set-enabled PowerTools 安装Git: sudo yum install git vim bash-completion 克隆Ceph Ansible存储库: git clone https://github.com/ceph/ceph-ansible.git 选择您想使用的ceph-ansible分支,命令语法为: git checkout $branch 我将切换到支持Ceph octopus版本的stable-5.0。 cd ceph-ansible git checkout stable-5.0 安装Python pip: sudo yum install python3-pip 使用pip和提供的requirements.txt安装Ansible和其他所需的Python库: sudo pip3 install -r requirements.txt 确保将/usr/local/bin路径添加到PATH: $ echo "PATH=\$PATH:/usr/local/bin" >>~/.bashrc $ source ~/.bashrc 确认已安装Ansible版本: $ ansible --version ansible 2.9.7 config file = /root/ceph-ansible/ansible.cfg configured module search path = ['/root/ceph-ansible/library'] ansible python module location = /usr/local/lib/python3.6/site-packages/ansible executable location = /usr/local/bin/ansible python version = 3.6.8 (default, Nov 21 2019, 19:31:34) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)] 1、将SSH公钥复制到所有节点 在您的Ceph管理节点上设置SSH密钥对,并将公钥复制到所有存储节点: $ ssh-keygen 复制pubkey,例如: for host in cephmon01 cephmon02 cephmon03 cephosd01 cephosd02 cephosd03; do ssh-copy-id root@$host done 在Admin节点上为所有存储节点创建ssh配置文件: # 这是我的ssh配置文件 $ vi ~/.ssh/config Host cephadmin Hostname 192.168.10.10 User root Host cephmon01 Hostname 192.168.10.11 User root Host cephmon02 Hostname 192.168.10.12 User root Host cephmon03 Hostname 192.168.10.13 User root Host cephosd01 Hostname 192.168.10.14 User root Host cephosd02 Hostname 192.168.10.15 User root Host cephosd03 Hostname 192.168.10.16 User root 将Hostname值替换为节点的IP地址,并将User值替换为您要安装的远程用户。 2、不使用root进行SSH时 对于普通用户安装,请使节点上所有存储上的远程用户执行无密码sudo: echo -e 'Defaults:user !requiretty\nusername ALL = (root) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/ceph sudo chmod 440 /etc/sudoers.d/ceph 其中,将username替换为~/.ssh/config文件中配置的用户名。 3、配置Ansible库存和Playbook 在管理节点上创建Ceph集群组变量文件: cd ceph-ansible cp group_vars/all.yml.sample group_vars/all.yml vim group_vars/all.yml 编辑文件以配置您的ceph集群: ceph_release_num: 15 cluster: ceph # Inventory host group variables mon_group_name: mons osd_group_name: osds rgw_group_name: rgws mds_group_name: mdss nfs_group_name: nfss rbdmirror_group_name: rbdmirrors client_group_name: clients iscsi_gw_group_name: iscsigws mgr_group_name: mgrs rgwloadbalancer_group_name: rgwloadbalancers grafana_server_group_name: grafana-server # Firewalld / NTP configure_firewall: True ntp_service_enabled: true ntp_daemon_type: chronyd # Ceph packages ceph_origin: repository ceph_repository: community ceph_repository_type: cdn ceph_stable_release: octopus # Interface options monitor_interface: eth0 radosgw_interface: eth0 # DASHBOARD dashboard_enabled: True dashboard_protocol: http dashboard_admin_user: admin dashboard_admin_password: St0ngAdminp@ass grafana_admin_user: admin grafana_admin_password: St0ngAdminp@ass 如果群集和公共网络有单独的网络,请相应地定义它们: public_network: "192.168.3.0/24" cluster_network: "192.168.4.0/24" 根据需要配置其他参数。 4、设置OSD设备 我有三个OSD节点,每个都有一个原始块设备-/dev/sdb。 $ lsblk
列出要使用的OSD原始块设备: $ cp group_vars/osds.yml.sample group_vars/osds.yml $ vim group_vars/osds.yml copy_admin_key: true devices: - /dev/sdb 创建一个新的ceph节点ansible库存: vim hosts 正确设置库存文件,以下是我的库存,修改清单组的方式是您希望在群集节点中安装服务的方式: # Ceph admin user for SSH and Sudo [all:vars] ansible_ssh_user=root ansible_become=true ansible_become_method=sudo ansible_become_user=root # Ceph Monitor Nodes [mons] cephmon01 cephmon02 cephmon03 # MDS Nodes [mdss] cephmon01 cephmon02 cephmon03 # RGW [rgws] cephmon01 cephmon02 cephmon03 # Manager Daemon Nodes [mgrs] cephmon01 cephmon02 cephmon03 # set OSD (Object Storage Daemon) Node [osds] cephosd01 cephosd02 cephosd03 # Grafana server [grafana-server] cephosd01
步骤3:在CentOS 8上部署Ceph 15(Octopus)集群 通过将示例Playbook复制到ceph可访问的项目site.yml.sample的根目录来创建Playbook文件: cp site.yml.sample site.yml 运行Playbook: ansible-playbook -i hosts site.yml 如果安装成功,则运行状况检查应返回“OK”:
这是我的安装输出完成后的屏幕截图:
步骤4:在CentOS 8上验证Ceph集群安装 登录到群集节点之一,并进行一些验证以确认Ceph存储集群在CentOS 8上的安装成功: $ ssh root@ceph-mon-01
您可以在活动的MGR节点上访问Ceph仪表板:
使用在group_vars/all.yml文件中配置的凭据登录,对我来说,数值如下: dashboard_admin_user: admin dashboard_admin_password: St0ngAdminp@ass 然后,您可以在群集上创建具有不同访问级别的更多用户:
可以在为grafana服务器组名称设置的节点上访问Grafana仪表板,默认情况下,该服务应在3000端口上进行侦听:
使用已配置的访问凭据访问管理控制台: grafana_admin_user: admin grafana_admin_password: St0ngAdminp@ass 至此,Ceph集群安装并配置完成。
相关主题 |