Linux 固态硬盘 RAID0 + LVM 速度测试及优化要点

您所在的位置:网站首页 固态盘做raid0速度有多快 Linux 固态硬盘 RAID0 + LVM 速度测试及优化要点

Linux 固态硬盘 RAID0 + LVM 速度测试及优化要点

2024-07-12 22:25| 来源: 网络整理| 查看: 265

本文着重简述Linux 固态硬盘 RAID0 + LVM 速度测试及优化要点,不包括具体搭建。测试平台:Deepin Linux 20.2.4,自带磁盘工具gnome-disk-utility。硬件:Intel i7 4770 CPU,2条8G内存,2块金士顿A400 480G固态硬盘。演示视频地址: https://www.bilibili.com/video/BV1qh411t7Aq?share_source=copy_web

一、参数及价格 固态硬盘标称速度,480G及以上是读500M/s,写是450M/s。当前价格:480G版,309元;960G版,569元。

二、磁盘结构概览 两块硬盘各分为两两相等的4对分区,每对分区使用 mdadm 组成软件 RAID0,4个RAID0作为 LVM 的物理卷(PV)组成卷组(VG),卷组上划分逻辑卷(LV)供 Linux 作为文件系统分区。示意图如下。 这里,实际上两块硬盘可以直接组成一个大的 RAID0 就行,我分成4对分区主要是为了以后可以任意在几个分区中安装如 Windows 等系统,借助 LVM 可以在不影响已有系统的情况下随意折腾。

三、测试步骤及结论 一)、步骤 1、测试之前执行一次全文件系统 trim 操作 sudo fstrim -Av 以减少无用数据的影响。 2、分别测试两块硬盘单盘的读取性能。因为系统运行在上面,无法卸载,就不执行单盘写入测试。 3、测试一个 RAID0 的读取性能。因为其上有活动的LVM卷组,就不执行写入测试。 4、测试大的LV分区(/dev/fast/home,/home 挂载,591G)的读取性能。因为其上有挂载的 /home 文件系统,就不执行写入测试。 5、卸载小的LV分区(/dev/fast/iotest,/mnt/iotest 挂载,85G),测试读取写入性能。 二)、结论 构建在2块固态硬盘+RAID0+LVM (或2块固态硬盘+RAID0)的读写(或只读,写未测试)性能基本上达到单盘标称的2倍。 但是2块固态硬盘坏掉任意1块整个文件系统数据就丢失了,所以不适合存储重要数据。我的重要数据存储在联机的另一块机械硬盘上,并且还有另一块机械硬盘放在硬盘盒里作离线备份。

四、固态硬盘优化要点 1、不要买到不适合在 Linux 下工作的固态硬盘,这里有个黑名单:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/ata/libata-core.c#n3775 。 2、使用新内核、更新固态硬盘固件、使用成熟的 ext4 文件系统、内存大点、如果每天都要写入四五十个G的内容不要用TLC NAND的SSD固态硬盘。 3、4K对齐,现在 Linux 的分区工具如 fdisk 默认 4K 对齐了。 4、在 /etc/fstab 添加 "noatime" 或者 "relatime" mount 选项以禁止或大大减少读取文件产生的更新访问时间的写操作。 5、使用 fstrim.timer 进行固态硬盘的 trim(每周1次),而不是在 fstab 中 设置discard 选项和手动频繁执行 trim。频繁执行 trim 可能对磁盘有负面影响。 6、把 /tmp,/var/log,/var/tmp 等临时或日志目录挂载到内存中,减少对磁盘的写操作。 7、使用低延迟IO调度,echo deadline > /sys/block/sdX/queue/scheduler (不过,Deepin 内核中只含 mq-deadline 一种,据查是 deadline 针对多队列设备的变种)。 8、LVM 配置文件 /etc/lvm/lvm.conf 中设置 issue_discards = 1 在移除或缩小逻辑卷(LV)回收空间。 9、尽可能使用内存,减少交换分区的使用。在 /etc/sysctl.d/local.conf 中设置 vm.swappiness=1 。 10、在 EXT4 文件系统中禁止日志功能弊大于利,不建议禁止。 11、修改了系统参数后,执行 sudo update-initramfs -k all -u -v 更新所有内核的 /boot/initrd.img* 文件。 上面有些要点是与网上的一些文章相冲突的,一是因为有的文章是过时的,或者观点有争议的。所以我上面的优化要点仅供参考。

五、主要参考链接: SSDOptimization https://wiki.debian.org/SSDOptimization

ssd linux 相关黑名单:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/ata/libata-core.c#n3775

How to properly activate TRIM for your SSD on Linux: fstrim, lvm and dm-crypt http://blog.neutrino.es/2013/howto-properly-activate-trim-for-your-ssd-on-linux-fstrim-lvm-and-dmcrypt/

Extend the life of your SSD drive with fstrim https://opensource.com/article/20/2/trim-solid-state-storage-linux

Should I disable journaling on Linux to protect SSD drives>?https://www.reddit.com/r/linuxquestions/comments/al60h9/should_i_disable_journaling_on_linux_to_protect/

mdadm https://en.wikipedia.org/wiki/Mdadm Since version 3.7 of the Linux kernel mainline, md supports TRIM operations for the underlying solid-state drives (SSDs), for linear, RAID 0, RAID 1, RAID 5 and RAID 10 layouts.

LVM https://wiki.archlinux.org/title/Solid_state_drive#LVM TRIM requests that get passed from the file system to the logical volume are automatically passed to the physical volume(s). No additional configuration is necessary.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3