SSD和两个硬盘驱动器的raid建议
我有一台带有一个128GB SSD和两个1TB硬盘的新机器。 在SSD上是操作系统,我最初的想法是将两个HDD放在RAID 1中以获取用户数据。
经过一番思考后,我想出了另外两个设置,现在我有点怀疑:)有人可以建议什么是最好的设置?
1:RAID 1中的单个SSD和HDD(原始思想)
2:在HDD上创建2个分区(128GB和872GB)。 将两个872GB放入RAID 1,并使用SSD和一个128GB HDD分区创建另一个RAID 1。
3:在HDD(750/250)上创建2个分区,将705GB放入RAID 1并使用2 250GB作为备份,并将SSD自动快照到(其中一个)这些分区。
我认为这两个主要问题是:
是否建议仅使用部分驱动器创建raidarrays并主动使用该驱动器的其他部分,或者是否应始终使用完整磁盘?
是否建议使用SSD和HDD创建raid 1arrays,或者这会打破SSD的整体速度优势?
是否建议仅使用部分驱动器创建raidarrays并主动使用该驱动器的其他部分,或者是否应始终使用完整磁盘?
建议总是使用尽可能多的类似设备。 我不确定这个建议有多少是迷信,但让我们先看看这个:
是否建议使用SSD和HDD创建raid 1arrays,或者这会打破SSD的整体速度优势?
不。不要这样做,你会打击速度。 除了它们是不同的设备等之外,我非常肯定的一件事是你的速度会下降,因为你将以最慢的磁盘速度工作 – >你的ssd-hdd组合将是方式比你的SSD慢:
你不应该这样做你的SSD。 你的第一个选择是最好的选择。 只需给自己安全的用户空间和快速的系统磁盘。 备份那个磁盘。 (记住,RAID不是备份策略)
第一个选择并非完全愚蠢。 如果配置正确,“混合RAID1”确实有效。 我自己运行了这个设置,直到我的SSD开始表现得很奇怪并开箱即用。
请参阅这些文章以获取指导
http://www.vinsec.net/2012/05/hybrid-hdd-ssd-raid1.html
https://superuser.com/questions/293144/combining-ssd-and-hard-disk-in-software-raid1
第一个问题
出于性能原因,请不要这样做。 在其他分区上执行I / O时,会降低性能。 但是,如果性能不是您关注的问题,而是冗余,则可以考虑这一点。
第二个问题
不,不要这样做。 这条链与这里最薄弱的环节一样强大。 你的arrays将更像硬盘驱动器,你会浪费昂贵的SSD。
相反,使用……
dm-cache或flashcache (相当高级和实验性)。 它使您可以将SSD用作较慢硬盘的缓存(读取和写入)。 巨大的性能提升和可调整性,以在耐用性和性能方面找到平衡点。
另请参阅: 如何安装和使用flashcache / bcache将HDD缓存到SSD?
我想在可能的解决方案池中添加不同的建议。 我建议你将你的设置基于btrfs的子体积和快照function与btrbk cronjob相结合。
设置它不一定是微不足道的,但很大程度上取决于你的技能和以往的经验。 网上有很多文献可以帮到你。 最后,您将获得一种非常灵活,快速的方式来定期备份您的SSD,并提供许多选项,以创建完美满足您需求的解决方案。
注意事项:任何forms的raid都可以而且永远不应取代常规备份。 (幸运的是,btrbk可以很容易地扩展到外部驱动器或ssh可访问的主机,请参阅其手册 )
一般设置
我的建议的一般想法是使用SSD作为您的btrfs系统驱动器,其中包含您的根和相关子卷以及btrfs raid1中的两个HDD作为您的数据和备份驱动器。
与btrbk一起,这将允许您将系统SSD的自动增量备份执行到备份HDD。 由于HDD设置为镜像,因此所有备份也将保持镜像状态。
此外,btrfs发送和接收子卷的能力(这是btrbk用于进行备份的能力)允许您在系统和数据驱动器之间自由移动数据和备份。 这将允许您更改快速SSD上存储的数据,同时始终维护所有数据的版本化和镜像备份。
设置btrfs
要开始使用,您需要将Ubuntu重新安装到SSD上,并选择btrfs作为根文件系统或将现有的安装文件系统转换为btrfs。 这两种方式都在Ubuntu的社区帮助页面上描述了btrfs ,如果你刚刚开始使用Ubuntu上的btrfs ,这是一个很好的阅读。
接下来,您需要使用以下命令将HDD转换为btrfs raid1,其中/dev/sdx
和/dev/sdy
是两个驱动器(这些驱动器上的所有数据都将丢失!) :
mkfs.btrfs -d raid1 /dev/sdx /dev/sdy
如果您不熟悉快照或btrfs,我会建议您在熟悉文件夹,子卷和快照之间的区别,并在将任何实际数据写入raid1之前尝试一些命令。
您可以通过多种方式组织数据,还可以在btrfs内核wiki的系统管理员指南中找到一些示例。
一种方法是在某处安装btrfs root( subvolid
0
或5
)并使用它来管理子卷和快照,并将所有数据存储在适当的子卷中,然后将其安装到文件系统中方便的位置。 这样您就可以随意快照,移动,恢复和替换任何数据。
对于您的具体示例,这可能意味着以下(所有命令应该以root身份运行/使用sudo):
- 将系统btrfs root(
subvolid=0
)subvolid=0
到/btrfs/system
- 将数据btrfs raid1 root(
subvolid=0
)subvolid=0
到/btrfs/data
不要手动安装这些卷,而是在安装之前将它们添加到fstab ( /etc/fstab
),因此它们也会在启动时安装。 我建议通过他们的UUID挂载它们,你可以通过运行sudo btrfs filesystem show
来检索它们。
UUID= /btrfs/system btrfs defaults,subvolid=0 0 0 UUID= /btrfs/data btrfs defaults,subvolid=0 0 0
现在安装它们:
sudo mkdir /btrfs sudo mkdir /btrfs/data sudo mount /btrfs/data sudo mkdir /btrfs/system sudo mount /btrfs/system
现在,您可以为每个btrfs文件系统添加任何其他子卷。 Ubuntu通常subvol=@
为你的root /
( subvol=@
)和home目录/home
( subvol=@home
)创建一个子卷。 通常将/var
或/tmp
转换为自己的子卷或创建特定于应用程序的子卷,例如/var/www/
。
我个人更喜欢将所有子卷保留在btrfs根目录下,并使用mount和fstab条目将它们挂载到特定位置。
例如,要在HDD raid1上为您的音乐collections创建子卷,我会执行以下操作:
btrfs subvolume create /btrfs/data/@music
然后我将使用以下fstab条目将其挂载到/music
:
UUID= /music btrfs defaults,subvol=@music 0 0
btrbk的设置
其次,您必须为要快照并备份到HDD raid的子卷设置btrbk。
作为如何定期备份@
和@home
并保持备份的常规间隔历史记录的简单示例,您可以将以下内容写入/etc/btrbk.conf
:
# The long timestamp recommended for more then one snapshot a day timestamp_format long # Set time spacing of snapshots kept on SSD snapshot_preserve_min 2d snapshot_preserve 7d 4w 3m # Set time spacing of snapshots kept on HDD raid target_preserve_min no target_preserve 8w *m snapshot_dir /btrfs/system/snapshots volume /btrfs/system subvolume @ target send-receive /btrfs/data/backup/ subvolume @home target send-receive /btrfs/data/backup/
有关任何详细信息,请阅读btrbk文档 。 它还将说明如何从快照恢复数据。
最后,您必须使用sudo crontab -e
将btrbk添加到您的crontab中 。 例如,每天中午运行btrbk快照和备份,添加以下行:
0 12 * * * /path/of/btrbk run
其他考虑
交换
虽然通常在具有至少8 GB RAM的现代个人计算机系统中对交换空间的需求越来越少,但仍然存在可以帮助您的用例,尤其是当位于SSD上时,其性能受到影响。交换并不明显。 因此,通常仍建议设置交换文件或分区。
话虽这么说, btrfs不支持交换文件 。 这意味着,如果您希望能够在系统上使用交换,则必须将一些SSD空间分配到单独的交换分区中。
btrfs SSD检测
Btrfs会自动检测安装的文件系统是否位于SSD上,并在此情况下启用耗损均衡。
然而,这不再是必要的,因为现代SSD自动磨损水平,同时导致自由空间碎片化的问题。 因此,我个人建议您使用nossd
选项安装SSD。
更多细节可以在btrfs内核wiki中找到 。
文件系统压缩
Btrfs支持透明文件压缩。 通过将compress
选项添加到mount标志,将为所有写入的新文件启用它。
例如,要为我之前用作示例的@music
子卷启用压缩,我会将我的fstab条目更改为:
UUID= /music btrfs defaults,compress,subvol=@music 0 0
要应用此更改,请不要忘记重新安装(卸载并重新安装)受影响的子卷。
对于最新的计算机,在文件写入之前和读取文件之后压缩文件的开销通常可以忽略不计。 在启用压缩的情况下,将较大但可压缩的文件写入慢速磁盘可能会更快。
如果你担心速度,你也可以使用compress=lzo
的更快但效率更低的LZO压缩。
可以在btrfs内核wiki中再次找到更多细节。
主文件夹的位置
默认情况下,Ubuntu将您的主文件夹放入系统驱动器上的@home
子卷。 如果您搬家到您的硬盘镜子符合您的个人喜好。 您也可以将它保存在SSD上,并将其包含在您的btrbk备份中,如上所示。
备份的时间间隔
虽然我的示例为所有子卷设置了相同的保留时间,但btrbk允许您为每个子卷单独设置此时间。
您还可以在不同的时间间隔运行具有不同配置的btrbk(请参阅-c
选项),以更好地控制何时对子卷进行快照和/或备份。
快速创建快照时,由于btrfs写时复制的特性,你甚至可以让btrbk每小时创建一个快照,但每天只能将它们传输到备份磁盘一次,对于经常更改的文件夹,比如你的家夹。
检测钻头腐烂
要利用btrfs位腐烂/数据损坏检测(以及raid1的情况下自动修复),您应该确保定期运行btrfs scrub,例如作为cron作业,使用:
btrfs scrub start /btrfs/system btrfs scrub start /btrfs/data
- 使用hdparm在X分钟后将HDD置于待机状态不起作用
- 提高mdadm RAID-6写入速度
- MDADM RAID1主服务器系统磁盘错误:逐步启动raidarraysmdadm:创建未找到用户root
- 来自update-initramfs的mdadm警告(系统无法启动),mkconf的建议修复似乎与mdadm的问题描述不一致
- Ubuntu 13.04服务器安装没有RAID选项?
- AMD Raid SMART测试Ubuntu服务器
- 是否可以模拟(Windows)raid控制器来恢复raid1镜像?
- 我可以使用ssd缓存mdadm raid吗?
- 使用UEFI BIOS在具有RAID 1和LVM的计算机上安装带有RAID 1和LVM的Ubuntu 18.04桌面