当前位置: 首页 > 科技观察

如何在Ubuntu16.04中安装Ceph存储集群

时间:2023-03-16 10:17:29 科技观察

Ceph是一个高性能、可靠、可扩展的开源存储平台。它是一个免费的分布式存储系统,提供了对象级、块级和文件级存储的接口,可以不受单点故障的影响运行。在本教程中,我将指导您在Ubuntu16.04服务器上设置Ceph集群。Ceph集群由以下组件组成:CephOSD(ceph-osd)-控制数据存储、数据复制和恢复。一个Ceph集群至少需要两台CephOSD服务器。我们将使用三台Ubuntu16.04服务器进行此安装。CephMonitor(ceph-mon)-监控集群状态并运行OSD映射和CRUSH映射。这里我们使用服务器。Ceph元数据服务器(ceph-mds)-如果您想将Ceph用作文件系统,这是必需的。先决条件6个安装了Ubuntu16.04的服务器节点所有节点上的根访问权限我将使用以下主机名/IP安装:主机名IP地址ceph-admin10.0.15.10mon110.0.15.11osd110.0.15.21osd210.0.15.22osd310.0.15.23client10。0.15.15第1步-配置所有节点对于此安装,我将配置所有6个节点以准备安装Ceph集群软件。所以你必须在所有节点上运行下面的命令。然后确保所有节点都安装了ssh-server。创建Ceph用户在所有节点上新建一个名为cephuser的用户useradd-m-s/bin/bashcephuserpasswdcephuser创建新用户后,我们需要为cephuser配置无密码sudo权限。这意味着cephuser可以使用sudo权限运行,而无需先输入密码。运行以下命令完成配置。echo"cephuserALL=(root)NOPASSWD:ALL"|sudotee/etc/sudoers.d/cephuserchmod0440/etc/sudoers.d/cephusersed-is'/Defaultsrequiretty/#Defaultsrequiretty'/g/etc/sudoersinstallandconfigureNTP安装NTP同步所有节点的日期和时间。首先运行ntpdate命令通过NTP设置日期。我们将使用美国矿池的NTP服务器。然后启用并启用NTP服务以在引导时启动。sudoapt-getinstall-yntpntpdatentp-docntpdate0.us.pool.ntp.orghwclock--systohcsystemctlenablentpsystemctlstartntpinstallOpen-vm-tools如果你在VMware中运行所有节点,你需要安装这个虚拟化工具。sudoapt-getinstall-yopen-vm-tools安装Python和parted在本教程中,我们需要python包来构建ceph集群。安装python和python-pip。sudoapt-getinstall-ypythonpython-pipparted配置主机文件使用vim编辑器编辑所有节点的主机文件。vim/etc/hosts粘贴如下配置:10.0.15.10ceph-admin10.0.15.11mon110.0.15.21ceph-osd110.0.15.22ceph-osd210.0.15.23ceph-osd310.0.15.15ceph-client保存hosts文件,退出vim编辑。现在您可以通过尝试ping两台服务器之间的主机名来测试网络连接。ping-c5mon1Ceph集群在Ubuntu16.04上的安装步骤2-配置SSH服务器在此步骤中,我们将配置ceph-admin节点。管理节点用于配置监控节点和osd节点。登录到ceph-admin节点并使用cephuser用户。sshroot@ceph-adminsu-cephuser管理节点用于安装和配置所有集群节点,因此ceph-admin上的用户必须具有无需使用密码即可连接到所有节点的权限。我们需要为“ceph-admin”节点上的cephuser用户配置无密码SSH登录。为cephuser生成ssh密钥。ssh-keygen将密码留空。接下来,为ssh创建一个配置文件vim~/.ssh/config并粘贴以下配置:Hostceph-adminHostnameceph-adminUsercephuserHostmon1Hostnamemon1UsercephuserHostceph-osd1Hostnameceph-osd1UsercephuserHostceph-osd2Hostnameceph-osd2UsercephuserHostceph-osd3Hostnameceph-osd3UsercephuserHostceph-client文件并保存vuserCeph-admin配置将配置文件权限更改为644。chmod644~/.ssh/config现在使用ssh-copy-id命令向所有节点添加密钥。ssh-keyscanceph-osd1ceph-osd2ceph-osd3ceph-clientmon1>>~/.ssh/known_hostsssh-copy-idceph-osd1ssh-copy-idceph-osd2ssh-copy-idceph-osd3ssh-copy-idmon1当要求输入密码时输入你的cephuser密码.Ceph-admindeploysshkeytoallclusternode现在尝试从ceph-admin节点登录osd1服务器,测试无密码登录是否正常。sshceph-osd1SSH从ceph-admin到所有节点cluster的Lesspassword步骤3-配置Ubuntu防火墙为了安全起见,我们需要打开服务器上的防火墙。我们更喜欢使用Ufw(UncomplicatedFirewall)来保护系统,它是Ubuntu的默认防火墙。这一步我们在所有节点上开启ufw,然后打开ceph-admin、ceph-mon和ceph-osd需要的端口。登录到ceph-admin节点,并安装ufw包。sshroot@ceph-adminsudoapt-getinstall-yufw打开80、2003和4505-4506端口,然后重启防火墙。sudoufwallow22/tcpsudoufwallow80/tcpsudoufwallow2003/tcpsudoufwallow4505:4506/tcp启用ufw并将其设置为启动。sudoufwenableUFWFirewallwithCephservice从ceph-admin节点,登录到监控节点mon1并安装ufw。sshmon1sudoapt-getinstall-yufw打开ceph监控节点的端口,然后启动ufw。sudoufwallow22/tcpsudoufwallow6789/tcpsudoufwenable***,在每个osd节点ceph-osd1、ceph-osd2和ceph-osd3上打开这些端口6800-7300。从ceph-admin登录到每个ceph-osd节点以安装ufw。sshceph-osd1sudoapt-getinstall-yufw打开osd节点上的端口并重新启动防火墙。sudoufwallow22/tcpsudoufwallow6800:7300/tcpsudoufwenableufw防火墙配置完成。第4步-配置CephOSD节点在本教程中,我们有3个OSD节点,每个节点有两个硬盘分区。/dev/sda用于根分区/dev/sdb空闲分区-20GB我们将使用/dev/sdb作为ceph磁盘。从ceph-admin节点,登录到所有OSD节点,并将/dev/sdb分区格式化为XFS文件系统。sshceph-osd1sshceph-osd2sshceph-osd3使用fdisk命令查看分区表。sudofdisk-l/dev/sdb将/dev/sdb分区格式化为XFS文件系统,并使用parted命令创建GPT分区表。sudoparted-s/dev/sdbmklabelgptmkpartprimaryxfs0%100%下面,使用mkfs命令将分区格式化为XFS格式。sudomkfs.xfs-f/dev/sdb现在检查分区,您将看到一个带有XFS文件系统的/dev/sdb分区。sudofdisk-s/dev/sdbsudoblkid-ovalue-sTYPE/dev/sdbFormatpartitioncephOSDnodes步骤5-创建Ceph集群在这一步中,我们将从ceph-admin安装Ceph到所有节点。要立即开始,请登录到ceph-admin节点。sshroot@ceph-adminsu-cephuser在ceph-admin节点上安装ceph-deploy首先我们在系统上安装了python和python-pip。现在我们需要从pypipython存储库安装Ceph部署工具“ceph-deploy”。使用pip命令在ceph-admin节点上安装ceph-deploy。sudopipinstallceph-deploy注意:确保所有节点都已更新。安装ceph-deploy工具后,为Ceph集群配置创建一个新目录。创建新集群创建新集群目录。mkdirclustercdcluster/接下来使用ceph-deploy命令通过定义监控节点mon1来创建一个新的集群。ceph-deploynewmon1命令会在集群目录下生成Ceph集群配置文件ceph.conf。生成新的ceph集群配置用vim编辑ceph.conf。[global]块下的vimceph.conf,粘贴下面的配置。#Yournetworkaddresspublicnetwork=10.0.15.0/24osdpooldefaultsize=2保存文件并退出编辑器。在所有节点上安装Ceph现在使用一个命令从ceph-admin节点在所有节点上安装Ceph。ceph-deployinstallceph-adminceph-osd1ceph-osd2ceph-osd3mon1命令会自动在所有节点上安装Ceph:mon1、osd1-3和ceph-admin-安装需要一些时间。现在去mon1节点部署监控节点。ceph-deploymoncreate-initial命令会创建一个监控键,用ceph命令检查这个键。ceph-deploygatherkeysmon1部署密钥ceph将OSD添加到集群在所有节点上安装Ceph之后,我们现在可以将OSD守护进程添加到集群中。OSD守护进程将在磁盘/dev/sdb分区上创建数据和日志。检查所有osd节点的/dev/sdb磁盘可用性。ceph-deploydisklistceph-osd1ceph-osd2ceph-osd3diskosd节点列表您将看到我们之前创建的XFS格式的/dev/sdb。接下来,删除所有OSD节点上带有zap选项的分区表。ceph-deploydiskzapceph-osd1:/dev/sdbceph-osd2:/dev/sdbceph-osd3:/dev/sdb该命令会删除所有CephOSD节点/dev/sdb上的数据。现在准备所有OSD节点,确保结果正确。ceph-deployosdprepareceph-osd1:/dev/sdbceph-osd2:/dev/sdbceph-osd3:/dev/sdb当你看到ceph-osd1-3resultisreadyforOSDuse时,命令成功了。准备ceph-osd节点使用以下命令激活OSD:ceph-deployosdactivateceph-osd1:/dev/sdbceph-osd2:/dev/sdbceph-osd3:/dev/sdb现在可以再次查看OSDS节点的sdb磁盘.ceph-deploydisklistceph-osd1ceph-osd2ceph-osd3Cephosdsactivated结果是/dev/sdb现在分为两个区域:/dev/sdb1-CephData/dev/sdb2-CephJournal或者你可以直接在OSD节点mountain上查看.sshceph-osd1sudofdisk-l/dev/sdbCephOSD节点已创建接下来,将管理密钥部署到所有关联节点。ceph-deployadminceph-adminmon1ceph-osd1ceph-osd2ceph-osd3在所有节点上运行以下命令更改密钥文件权限。sudochmod644/etc/ceph/ceph.client.admin.keyringCeph集群已在Ubuntu16.04上创建。第6步-测试Ceph在第4步中,我们安装并创建了一个新的Ceph集群,然后将OSD节点添加到集群中。现在我们应该测试集群以确保它按预期工作。从ceph-admin节点,登录到Ceph监控服务器mon1。sshmon1运行以下命令来检查集群是否健康。sudocephhealth现在检查集群状态。sudoceph-s可以看到如下返回结果:CephClusterStatus确保Ceph健康状态OK,有一个监控节点mon1IP地址'10.0.15.11'。有3个OSD服务器全部启动并运行,有45GB可用磁盘空间-3x15GBCeph数据OSD分区。我们在Ubuntu16.04上成功搭建了一个新的Ceph集群。