Ceph OSD和日志驱动器

我有一个单独的驱动器为我的每个ceph OSD服务器。 每个OSD主机有4个数据驱动器。 一个日志驱动器服务于4? 日志驱动器是共享的吗? 每个数据驱动器是否应该有一个分区?

日记/数据分离

如果每个OSD主机只有这四个驱动器,并且所有驱动器具有相似的性能,那么通常/推荐的设置将是每个磁盘有一个OSD(即,每个服务器4个),并且每个OSD将具有相同的日志文件磁盘作为数据。

另一种stream行的(至less是历史上的)设置是在单独的驱动器上设置日志,以优化写入吞吐量和延迟; 通常是固态硬盘,理想的是具有“掉电保护”的固态硬盘,这样他们就可以快速地确认“同步”写入,而不必写入闪存arrays(可能会稍微慢一些)。 在这种设置中,通常在多个OSD(数据)驱动器之间共享日志SSD。 例如,我们的OSD服务器有8个或10个Ceph OSD旋转防锈驱动器,日志分布在两个SSD上。

分区

如果你的数据和日志在同一个物理磁盘上,我个人会把它们放在同一个分区/文件系统上。 主要是因为我担心,如果他们在不同的分区上,那么当OSD /文件系统在日志和(背景)数据写入之间交替时,会有很多头部移动。 我不确定这实际上是一个问题,在SSD上它肯定不是。 一般来说,单独的分区为您提供了一些优化机会,即不同的文件系统参数,甚至文件系统types,或根本没有文件系统的日志。 这是以操作复杂性为代价的,例如,当添加或更改日志的大小时,需要重新分区磁盘。

在我们的设置中,在单独SSD上使用旋转磁盘和日志的数据,每个旋转磁盘(OSD)都有一个分区,每个SSD上有一个专用的“日志”分区; 每个分区包含4-5个作为文件的日志。 我们的日志文件大小为每个6 GiB,所以日志分区大小为40 GB左右。

买者自负

基于几年SSD寿命和文件系统/ SSD效率(延迟,吞吐量)的经验和考虑,此设置已经发展。 这不一定是最佳的,但是这是一个棘手的领域… OSD日志有一个特殊的访问模式:只写入一个循环缓冲区,频繁的“同步”。 根据使用情况(以及控制器和文件系统的智能性),固态硬盘可能会有很大的变化(特别是写入延迟); 并且当N(通常是3)写入已经被提交到稳定存储时,Ceph仅仅确认写入的事实会加剧延迟峰值。 一般来说,我认为这仍然是一个(黑暗)科学的一点点,你一定要考虑到预期的使用模式 ,所以采取一切盐的build议,特别是在这里。

哦,我所说的一切都是为了“经典的”Ceph,其中的数据存储在一个文件系统,如XFS / ext4 / …随着即将到来的“BlueStore”,这些考虑可能不再(全部)适用。