4.超融合基础设施
Proxmox VE是一个虚拟化平台,可以紧密集成计算,存储和网络资源,管理高可用性群集,备份/还原以及灾难恢复。所有组件都是软件定义的,并且彼此兼容。
因此,可以通过集中式Web管理界面像单个系统一样对它们进行管理。这些功能使Proxmox VE成为部署和管理开源超融合基础架构的理想选择 。
4.1。带有Proxmox VE的超融合基础架构(HCI)的优势
超融合基础架构对于其中高基础架构需求满足低管理预算的部署,远程和分支机构环境等分布式设置或虚拟私有云和公共云特别有用。
HCI具有以下优点:
- 可扩展性:计算,网络和存储设备的无缝扩展(即快速且彼此独立地扩展服务器和存储)。
- 低成本:Proxmox VE是开源的,并且集成了您需要的所有组件,例如计算,存储,网络,备份和管理中心。它可以替代昂贵的计算/存储基础架构。
- 数据保护和效率:集成了备份和灾难恢复等服务。
- 简便性:易于配置和集中管理。
- 开源:无供应商锁定。
4.2。在Proxmox VE节点上管理Ceph服务
Proxmox VE统一了您的计算和存储系统,即,您可以将群集中的相同物理节点用于计算(处理VM和容器)和复制存储。传统的计算和存储资源孤岛可以打包到单个超融合设备中。单独的存储网络(SAN)和通过网络连接的存储(NAS)的连接消失了。通过集成开源软件定义的存储平台Ceph,Proxmox VE能够直接在管理程序节点上运行和管理Ceph存储。
Ceph是一个分布式对象存储和文件系统,旨在提供出色的性能,可靠性和可伸缩性。
Ceph在Proxmox VE上的一些优点是:
- 通过CLI和GUI支持轻松设置和管理
- 精简配置
- 快照支持
- 自愈
- 可扩展到EB级
- 具有不同性能和冗余特性的设置池
- 复制数据,使其具有容错能力
- 在经济的商品硬件上运行
- 无需硬件RAID控制器
- 开源的
对于中小型部署,可以在Proxmox VE群集节点上直接为RADOS块设备(RBD)安装Ceph服务器,请参阅 Ceph RADOS块设备(RBD)。最新的硬件具有大量的CPU能力和RAM,因此可以在同一节点上运行存储服务和VM。
为了简化管理,我们提供了pveceph-一种在Proxmox VE节点上安装和管理Ceph服务的工具。
Ceph由几个Daemon [ 4 ]组成,用作RBD存储:
- Ceph监控器(ceph-mon)
- Ceph管理器(ceph-mgr)
- Ceph OSD(ceph-osd;对象存储守护程序)
4.2.1。前提
要构建超融合的Proxmox + Ceph群集,应至少有三台(最好是)相同的服务器进行设置。
另请参阅Ceph网站上的建议 。
*处理器
较高的CPU核心频率可减少延迟,因此应优先考虑。作为一条简单的经验法则,您应该为每个Ceph服务分配一个CPU内核(或线程),以提供足够的资源来实现稳定和持久的Ceph性能。
记忆
尤其是在超融合设置中,需要仔细监视内存消耗。除了虚拟机和容器的预期工作负荷之外,Ceph还需要足够的可用内存来提供良好且稳定的性能。根据经验,对于大约1 TiB的数据,OSD将使用1 GiB的内存。OSD缓存将使用额外的内存。
网络
我们建议至少将10 GbE或更高的网络带宽专用于Ceph。 如果没有可用的10 GbE交换机,则也可以选择网状网络设置 [ 7 ]。
通信量,特别是在恢复过程中,将干扰同一网络上的其他服务,甚至可能破坏Proxmox VE群集堆栈。
此外,估计您的带宽需求。尽管一个HDD可能不会使1 Gb链路饱和,但每个节点可以有多个HDD OSD,而现代的NVMe SSD甚至会迅速使10 Gbps带宽饱和。部署具有更高带宽的网络将确保它不是您的瓶颈,而且不会很快出现,可能会达到25、40甚至100 GBps。
磁碟
在规划Ceph集群的大小时,重要的是要考虑恢复时间。特别是对于小型群集,恢复可能需要很长时间。建议您在小型设置中使用SSD代替HDD,以减少恢复时间,从而最大程度地减少恢复过程中发生后续故障事件的可能性。
通常,与旋转磁盘相比,SSD将提供更多的IOP。这个事实和较高的成本可能会使基于类的池分离更具吸引力。另一种可能的OSD加速是使用速度更快的磁盘如轴颈或DB / w ^ rite- 甲头戴式大号 OG设备,请参阅 创建头孢的OSD。如果将更快的磁盘用于多个OSD,则必须在OSD和WAL / DB(或日志)磁盘之间选择适当的平衡,否则,更快的磁盘将成为所有链接的OSD的瓶颈。
除了磁盘类型外,Ceph的最佳性能是每个节点的磁盘大小均匀且分布均匀。例如,在每个节点中具有4 x 500 GB磁盘要比具有单个1 TB和三个250 GB磁盘的混合设置更好。
还需要平衡OSD数量和单个OSD容量。更大的容量可以增加存储密度,但这也意味着单个OSD故障会迫使ceph立即恢复更多数据。
避免RAID
由于Ceph自身处理数据对象冗余和多次并行写入磁盘(OSD),因此使用RAID控制器通常不会提高性能或可用性。相反,Ceph被设计为自己处理整个磁盘,而中间没有任何抽象。RAID控制器不是为Ceph用例设计的,可能会使事情变得复杂,有时甚至会降低性能,因为它们的写入和缓存算法可能会干扰Ceph的算法。
避免使用RAID控制器,请改用主机总线适配器(HBA)。 |
以上建议应被视为选择硬件的粗略指导。因此,仍然必须使它适应您的特定需求,测试设置并持续监控运行状况和性能。 |
4.2.2。初始Ceph安装和配置
使用Proxmox VE,您可以受益于Ceph易于使用的安装向导。单击您的一个群集节点,然后导航到菜单树中的Ceph部分。如果尚未安装Ceph,现在将提示您安装。
该向导分为不同的部分,每个部分都需要成功完成才能使用Ceph。开始安装后,向导将从Proxmox VE的ceph存储库中下载并安装所有必需的软件包。
完成第一步后,您将需要创建一个配置。每个群集仅需要执行一次此步骤,因为此配置通过Proxmox VE的群集配置文件系统(pmxcfs)自动分配给所有剩余的群集成员 。
配置步骤包括以下设置:
- 公用网络:您应该为Ceph设置专用网络,此设置是必需的。强烈建议分离您的Ceph流量,因为它可能导致其他依赖于延迟的服务出现问题,例如,集群通信可能会降低Ceph的性能,如果不这样做的话。
- 群集网络:作为可选步骤,您可以走得更远,并分离OSD复制和心跳流量。这将减轻公共网络的负担,并可能导致显着的性能改进,尤其是在大型集群中。
您还有两个被认为是高级的选项,因此只有在您是专家的情况下才应更改。
- 副本数:定义对象复制的频率
- 最小副本数:定义要标记为已完成的I / O所需最小副本数。
另外,您需要选择第一个监视节点,这是必需的。
就是这样,您应该将成功页面作为最后一步,并包含有关如何进行操作的进一步说明。现在,您将准备开始使用Ceph,即使您需要创建其他监视器,创建一些OSD和至少一个池。
本章的其余部分将指导您如何充分利用基于Proxmox VE的Ceph设置,其中包括上述内容,更像是CephFS,它是对新Ceph群集的非常方便的补充。
4.2.3。安装Ceph软件包
使用Proxmox VE Ceph安装向导(推荐)或在每个节点上运行以下命令:
pveceph安装
这将在/etc/apt/sources.list.d/ceph.list中建立一个apt软件包存储库 并安装所需的软件。
4.2.4。创建初始Ceph配置
使用Proxmox VE Ceph安装向导(推荐)或在一个节点上运行以下命令:
pveceph init-网络10.10 。10.0 / 24
这会在/etc/pve/ceph.conf中创建一个带有ceph专用网络的初始配置。使用pmxcfs将该文件自动分发到所有Proxmox VE节点。该命令还从/etc/ceph/ceph.conf创建指向该文件的符号链接。因此,您只需运行Ceph命令即可,而无需指定配置文件。
4.2.5。创建Ceph监视器
Ceph监视器(MON) [ 8 ] 维护群集映射的主副本。为了获得高可用性,您至少需要3台显示器。如果使用安装向导,将已经安装了一台监视器。只要您的集群是小型到中型,就不需要3个以上的监视器,只有真正的大型集群才需要更多。
在要放置监视器的每个节点上(建议使用三个监视器),使用GUI中的Ceph→Monitor选项卡创建它或运行它。
pveceph createmon
默认情况下,这还将安装所需的Ceph Manager(ceph-mgr)。如果您不想安装管理器,请指定-exclude-manager选项。
4.2.6。创建Ceph Manager
Manager守护程序与监视器一起运行,提供用于监视集群的界面。由于Ceph发光发行版,因此需要ceph-mgr [ 9 ]守护程序。在监视器安装期间,还将安装ceph管理器。
建议在监视节点上安装Ceph Manager。要获得高可用性,请安装多个管理器。 |
pveceph createmgr
4.2.7。创建Ceph OSD
通过GUI或CLI,如下所示:
pveceph createosd / dev / sd [ X ]
我们建议使用Ceph群集大小,从12个OSD开始,并在至少三个节点(每个节点上有4个OSD)之间平均分配。 |
如果以前使用过磁盘(例如ZFS / RAID / OSD),则要删除分区表,引导扇区和剩余的任何OSD,以下命令就足够了。
ceph-volume lvm zap / dev / sd [ X ] --destroy
上面的命令将破坏磁盘上的数据! |
Ceph Bluestore
从Ceph Kraken版本开始,引入了一种新的Ceph OSD存储类型,即所谓的Bluestore [ 10 ]。由于Ceph Luminous,这是创建OSD时的默认设置。
pveceph createosd / dev / sd [ X ]
Block.db和block.wal
如果要为OSD使用单独的DB / WAL设备,则可以通过-db_dev和-wal_dev选项指定它。如果未单独指定,则WAL与DB一起放置。
pveceph createosd / dev / sd [ X ] -db_dev / dev / sd [ Y ] -wal_dev / dev / sd [ Z ]
您可以 分别使用-db_size和-wal_size参数直接为它们选择大小。如果未提供,则将使用以下值(按顺序):
-
来自ceph配置的bluestore_block_ {db,wal} _size ...
- …数据库,osd部分
- …数据库,全局部分
- …文件,osd部分
- …文件,全局部分
- OSD大小的10%(DB)/ 1%(WAL)
数据库存储BlueStore的内部元数据,而WAL是BlueStore的内部日志或预写日志。建议使用快速SSD或NVRAM以获得更好的性能。 |
Ceph文件存储
在Ceph Luminous之前,文件存储被用作Ceph OSD的默认存储类型。从Ceph Nautilus开始,Proxmox VE不再支持使用pveceph创建此类OSD 。如果仍要创建文件存储OSD,请直接使用 ceph-volume。
ceph-volume lvm create --filestore --data / dev / sd [ X ] --journal / dev / sd [ Y ]
4.2.8。创建Ceph池
池是用于存储对象的逻辑组。它拥有P lacement ģ roups(PG,pg_num)对象的集合。
如果未提供任何选项,则为服务于降级状态的对象设置默认的128个PG,3个副本的大小和2个副本的min_size。
PG的默认数量适用于2-5个磁盘。如果集群中的PG太少或太多,Ceph都会抛出 HEALTH_WARNING。 |
建议根据您的设置计算PG编号,您可以在线找到公式和PG计算器[ 11 ]。虽然以后可以增加PG,但永远不能减少。
您可以通过命令行或在Ceph→Pools下的每个PVE主机上的GUI上创建 池。
pveceph createpool <名称>
如果您还想自动获取池的存储定义,请在GUI上**“添加存储”复选框,或在创建池时使用命令行选项 --add_storages。
有关Ceph池处理的更多信息,请参见Ceph池操作[ 12 ] 手册。
4.2.9。Ceph CRUSH和设备类
Ceph的的基础是其算法,Ç ontrolled ř eplication ù的nDer 小号 calable ħ灰化(CRUSH [ 13 ])。
CRUSH计算存储位置和从中检索数据的位置,其优点是不需要*索引服务。CRUSH可使用OSD映射,存储区的存储桶(设备位置)和规则集(数据复制)。
可以在Ceph文档的CRUSH map [ 14 ]下找到更多信息。 |
可以更改此映射以反映不同的复制层次结构。在保持所需分布的同时,可以将对象副本分离(例如,故障域)。
一个常见的用例是对不同的Ceph池使用不同类别的磁盘。因此,Ceph引入了具有发光功能的设备类,以适应轻松生成规则集的需求。
设备类可以在ceph osd树输出中看到。这些类代表它们自己的根存储桶,可以通过以下命令看到。
ceph osd美眉树--show-shadow
上面命令的输出示例:
ID类别重量类型名称
- 16 nvme 2.18307根默认〜 nvme
- 13 nvme 0.72769 主机sumi1 〜 nvme
12 nvme 0.72769 OSD 。12
- 14 nvme 0.72769 主机sumi2 〜 nvme
13 nvme 0.72769 OSD 。13
- 15 nvme 0.72769 主机sumi3 〜 nvme
14 nvme 0.72769 OSD 。14
- 1个 7.70544根默认
- 3 2.56848 主机sumi1
12 nvme 0.72769 OSD 。12
- 5 2.56848 主机sumi2
13 nvme 0.72769 OSD 。13
- 7 2.56848 主机sumi3
14 nvme 0.72769 OSD 。14
要让池仅在特定设备类上分发其对象,您需要首先使用该特定类创建一个规则集。
ceph osdrush rule create-replicated <规则名称> <根> <故障域> <类>
<规则名称> |
与池连接的规则名称(在GUI和CLI中可见) |
<根> |
它应该属于哪个粉碎根(默认ceph根“默认”) |
<故障域> |
对象应分配在哪个故障域(通常是主机) |
<class> |
使用哪种类型的OSD后备存储(例如nvme,ssd,hdd) |
一旦规则在CRUSH映射中,您就可以告诉池使用规则集。
ceph osd池集 <池名> rush_rule <规则名>
如果池中已经包含对象,则必须相应地移动所有这些对象。根据您的设置,这可能会给您的群集带来巨大的性能影响。或者,您可以创建一个新池并分别移动磁盘。 |
4.2.10。Ceph客户
然后,您可以将Proxmox VE配置为使用此类池来存储VM或容器映像。只需使用GUI即可添加一个新的RBD存储(请参阅Ceph RADOS块设备(RBD)部分)。
您还需要将**环复制到外部Ceph集群的预定义位置。如果在Proxmox节点本身上安装了Ceph,则将自动完成。
文件名需要是<storage_id> +`.keyring - <storage_id>是后表达RBD:在/etc/pve/storage.cfg这是 我的-头孢-3-存储在下面的例子: |
mkdir / etc / pve / priv / ceph
cp / etc / ceph / ceph 。客户。管理员。**环/ etc / pve / priv / ceph / my-ceph-storage 。钥匙圈
4.2.11。头文件
Ceph还提供了一个与RADOS块设备在同一对象存储之上运行的文件系统。甲中号 ETA d ATA 小号 erver(MDS)是用于映射RADOS备份对象的文件和目录,允许提供一种符合POSIX的复制文件系统。如果已经使用ceph,这将使人们能够以一种简单的方式拥有一个集群的高可用性共享文件系统。它的元数据服务器可确保文件在整个Ceph集群上保持平衡,这样即使是高负载也不会使单个主机过载,这对于传统的共享文件系统方法(例如NFS)可能是一个问题。
Proxmox VE两者都支持,使用现有的CephFS作为存储 来保存备份,ISO文件或容器模板,以及创建超融合的CephFS本身。
元数据服务器(MDS)
CephFS需要配置和运行至少一台Metadata Server才能正常工作。您可以通过Proxmox VE Web GUI的Node-> CephFS面板或在命令行上简单地创建一个:
pveceph mds创建
可以在一个群集中创建多个元数据服务器。但是使用默认设置时,任何时候都只能**一个。如果MDS或其节点无响应(或崩溃),则另一个备用 MDS将被提升为active。使用create上的hotstandby参数选项可以加快主MDS和备用MDS之间的切换,或者如果已经创建,则可以设置/添加:
mds待机重放= true
在ceph.conf的MDS部分中。启用此功能后,此特定的MDS将始终轮询活动的MDS,以便在处于热状态时可以更快地接管 。但是自然地,主动轮询会对系统和主动MDS造成一些额外的性能影响。
多个活动MDS
由于Luminous(12.2.x),您还可以运行多个活动的元数据服务器,但这通常仅对大量并行客户端有用,因为否则MDS很少成为瓶颈。如果要设置此设置,请参阅ceph文档。[ 15 ]
创建一个CephFS
借助Proxmox VE的CephFS集成,您可以通过Web GUI,CLI或外部API接口轻松创建CephFS。为此,需要一些先决条件:
成功安装CephFS的前提条件:
完成所有检查并完成之后,您可以简单地通过Web GUI的Node-> CephFS面板或命令行工具pveceph创建一个CephFS,例如:
pveceph fs create --pg_num 128 --add-storage
这将创建一个名为``cephfs''的CephFS,其中使用一个具有128个放置组的名为'cephfs_data'的数据的池以及一个具有四分之一数据池放置组的名为'cephfs_metadata'的元 数据的池( 32)。查看Proxmox VE管理的Ceph池章节,或访问Ceph文档以获取有关针对您的设置的配件放置组号(pg_num)的更多信息[ 16 ]。另外,` --add-storage '参数将在创建成功后将CephFS添加到Proxmox VE存储配置中。
销毁CephFS
销毁CephFS将使其所有数据无法使用,这是无法撤消的! |
如果您确实要销毁现有的CephFS,则首先需要停止或销毁所有元数据服务器(M̀DS)。您可以通过Web GUI或命令行界面使用以下命令销毁它们:
pveceph mds销毁NAME
在承载MDS守护程序的每个Proxmox VE节点上。
然后,您可以通过发出以下命令来删除(销毁)CephFS:
ceph fs rm名称-是的,我真正的意思是
在托管Ceph的单个节点上。之后,您可能要删除创建的数据和元数据池,可以通过Web GUI或CLI使用以下方法完成:
pveceph池销毁NAME
4.2.12。Ceph监控和故障排除
一个好的开始是从初始部署开始就连续监视ceph的运行状况。既可以通过ceph工具本身,也可以通过Proxmox VE API访问状态。
下面的以下ceph命令可用于查看集群是否正常(HEALTH_OK),是否存在警告(HEALTH_WARN)甚至错误(HEALTH_ERR)。如果群集处于不正常状态,则以下状态命令还将概述当前事件和采取的措施。
#单次输出
pve#ceph -s
#连续输出状态更改(按CTRL + C停止)
pve#ceph -w
为了获得更详细的视图,每个ceph服务在/ var / log / ceph /下都有一个日志文件 ,如果没有足够的详细信息,则可以调整日志级别[ 17 ]。
您可以 在其网站上找到有关对Ceph群集进行故障排除的更多信息 [ 18 ]。