前言
在之前一直想尝试使用CEPH进行故障迁移/网络迁移测试,一直没有了解这东西该如何实际部署和使用,今天索性学习下。
注意:如果读文章的你同样使用虚拟机做测试,建议请先阅读:虚拟机内网带宽修正,CEPH需要大量带宽进行文件同步及存储池同步。
执行
首先在电脑上创建4个PVE虚拟机,并开启CPU虚拟化,注意虚拟硬盘保存位置及RAM和CPU分配量:
之后需要对其进行更换源仓库操作,并禁用官方的企业源。
正常创建完成后,首先将所有虚拟机加入到同一个集群内:
注意:所有服务器需要有至少一个接口在同一个网络用于内部通讯
在所有服务器加入集群后,每台服务器都要单独安装CEPH,过程很简单不再赘述
CEPH OSD、POOL创建
首先需要创建OSD的堆积规则,OSD是存储池的基本单位,可以简单理解为Raid的基本磁盘,单块的OSD损失并不会造成数据丢失,而OSD存储的堆积规则是用于告知CEPH如何存储文件,或者说告知它将文件存储在哪个类型的设备中。
在本次案例中,每个虚拟机均有一块100G的SSD和一块200G的HDD虚拟硬盘,那么根据两种硬盘类型就可以分别创建以下规则:
创建SSD堆积规则ceph osd crush rule create-replicated ssd_rule default host ssd
创建HDD堆积规则ceph osd crush rule create-replicated hdd_rule default host hdd
在完成两条规则的创建后,便可以开始创建OSD,并设定该硬盘的设备类型,注意,设备类型需要正确指定,若指定不正确会影响堆积规则的正确生效,对于OSD的更多资料,请访问:CEPH官方文档站
多余的硬盘是我之后加入的,并不影响实际操作。
在完成所有OSD的创建之后,开始基于它创建对应的存储池(Pool),存储池会基于上一步设置的规则或默认规则向OSD中“放置(CRUSH)”文件,注意,以 .
开头的池名称被CEPH作为保留名称,请勿使用该符号作为存储池名字的一部分,你需要根据服务器OSD的实际容量以及数量决定其上的各个参数,参阅:CEPH存储池介绍,同时不建议勾选添加存储,因为之后要重新添加资源池。此时添加的存储是没有必要的。
在存储池创建完毕后,转到 数据中心→存储→添加→RBD,将上一步创建的资源池添加到数据中心,之后转到 数据中心→权限→资源池,创建两个资源池。
在资源池创建完毕后,左侧列表中会出现对应的资源池Tag标签,点击对应标签,转到成员页,添加对应的存储,创建完毕后,便可以上传ISO文件,使用刚刚添加的RBD存储对象,进行虚拟机的创建
创建虚拟机并正常安装操作系统完成后,便完成了CEPH的配置及使用,但目前仍未实现故障转移,转到数据中心→HA→群组,创建故障转移群组,注意:每个故障转移群组可以设定不同的故障转移规则及条件,大致介绍如下:
nofailback:在默认情况下,虚拟机总是在具有更高优先级的服务器上运行(如果指定了优先级),假设一个优先级为1的宿主机故障且并没有比1更高优先级的宿主在线,那么该虚拟机会降级到优先级为2的服务器上恢复上线,在此期间如果此优先级为1的宿主机重新上线,那么该虚拟机会重新迁移到该宿主机,启用此选项可以防止该情况发生。
restricted: 在默认情况下,一个虚拟机在其宿主机离线后会被分配到其他更高/更低优先级的宿主机上运行,即使它们不在同一个HA组,这个选项可以用于限制其仅仅可以在该HA组所对应的宿主机上运行。如果该组所有宿主机成员均为离线,那么该虚拟机会被保持为停止状态。
在故障转移群组创建完毕后就可以将已经添加的虚拟机加入到这个故障转移组,转到HA页面添加资源,根据官方文档,以下是各个参数的大致解释:
max_relocate: 虚拟机最大重定位(迁移)次数
max_restart :虚拟机启动失败后在当前节点上重试的次数
state: (disabled | enabled | ignored | started | stopped) (default = started)
disabled: HA管理器会在虚拟机正在运行或出现异常时将其停止,并且不会在宿主机出现问题时迁移虚拟机,此方式一般用于将处于error状态的虚拟机重置。
enabled:started的别名,等效于started
ignored:HA管理器会忽略这个设备,不做任何操作。
started:HA管理器会尝试维持该虚拟机为开启状态,当对应宿主机发生故障或启动失败时,HA会尝试重新启动虚拟机或尝试将该虚拟机转移到其它宿主机。
stopped:HA管理器会尝试维持该虚拟机为关机状态,但仍会在对应宿主机出现问题时将虚拟机迁移到其他宿主机。
将对应的虚拟机加入HA管理组之后,等待操作生效,在生效后关闭虚拟机所在的宿主机,该虚拟机会在数分钟后由组内其他宿主机接管运行,关于高可用性的更多内容,详见:官方文档