固态磁盘部署指南

官网文档

固态硬盘(Solid-State Disks简称SSD) 是使用 NAND 闪存芯片持久存储数据的存储设备。
这使它们与前几代磁盘区分开来,前几代磁盘将数据存储在旋转的磁性盘片中。在SSD中整个逻辑块地址 (LBA) 范围内的数据访问时间是恒定的;
而对于使用旋转介质的旧磁盘,跨越大地址范围的访问模式会产生寻道成本。因此SSD设备具有更好的延迟和吞吐量。
随着使用块的数量接近磁盘容量,性能会下降。性能影响的程度因供应商而异。但所有设备都会经历一些退化。
为了解决降级问题,主机系统(如Linux内核)可以使用丢弃请求来通知存储给定范围的块不再使用。
SSD可使用此信息在内部释放空间,使用空闲块进行磨损均衡。仅当存储广告支持其存储协议(无论是ATA还是 SCSI)时才会发出丢弃。
使用特定于存储协议的协商丢弃命令(用于 ATA 的 TRIM 命令,设置 UNMAP 的 WRITE SAME 或用于 SCSI 的 UNMAP 命令)向存储发出丢弃请求。

当满足以下几点时,启用丢弃支持最有用:
1、文件系统上仍有可用空间
2、底层存储设备上的大多数逻辑块已经被写入

并非所有的固态设备都支持discard。检查/sys/block/sda/queue/discard_granularity(这是设备内部分配单元的大小) 或者 使用命令lsblk --discard 来检测,非0表示支持

以下是TRIM的类型
1、非确定性TRIM
2、确定性TRIM
3、TRIM后确定性读零

注:前两种TRIM机制在TRIM返回不同或相同的数据后作为对LBA的读命令,会导致数据泄露。 
RZAT在读取命令后返回零,RedHat建议使用这种TRIM机制来避免数据泄漏。 它仅在SSD中受到影响

查找TRIM机制的类型:
~]# hdparm -I /dev/sda | grep TRIM

如果SSD不能正确处理丢弃则在SSD上使用RAID5会导致性能下降。 可以raid456.conf文件或GRUB2配置中设置丢弃

在raid456.conf中设置丢弃

要在 raid456.conf 文件中启用丢弃
1、验证硬件是否支持丢弃:
~]# cat /sys/block/sdb/queue/discard_zeroes_data
如返回值为1则支持丢弃。如返回值为0,则RAID代码必须将磁盘归零
2、创建/etc/modprobe.d/raid456.conf文件,并包含以下行:
options raid456 devices_handle_discard_safely=Y
3、使用该dracut -f命令重建初始 ramdisk (initrd)
4、重新启动系统以使更改生效

在 GRUB2 配置中设置丢弃

1、验证硬件是否支持丢弃:
# cat /sys/block/disk-name/queue/discard_zeroes_data
如返回值为1则支持丢弃。如果命令返回0则 RAID 代码必须将磁盘归零
2、将以下行添加到/etc/default/grub文件中:
raid456.devices_handle_discard_safely=Y
3、使用以下命令之一重新创建 GRUB2 配置文件
1)在具有 BIOS 固件的系统上:
# grub2-mkconfig -o /boot/grub2/grub.cfg
2)在具有 UEFI 固件的系统上:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
4、重新启动系统以使更改生效


使用 mount 命令的丢弃选项在设备上启用丢弃命令。 如要将 /dev/sda2 挂载到 /mnt 并启用丢弃
~]# mount -t ext4 -o discard /dev/sda2 /mnt


性能调优注意事项
有关固态磁盘的性能调整注意事项的信息,请参阅Red Hat Enterprise Linux 7 性能调整指南中的固态磁盘部分
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/Performance_Tuning_Guide/index.html#sect-Red_Hat_Enterprise_Linux-Performance_Tuning_Guide-Considerations-Solid_State_Disks
posted @ 2022-04-18 10:07  Linux大魔王  阅读(390)  评论(0编辑  收藏  举报