什么样的Linux桌面LVM条纹是值得的?

我在家里和工作上运行几台Linux机器。 我的大部分计算都是I / O限制的,例如,大型编译器回归套件等等。 在家里,我也有一台机器可以捕捉来自地面天线的高清video。 一个体育赛事进入一个大约30GB的单个文件; 我有超过4TB的专用于高清video的存储空间。

我的问题是在什么情况下我应该条纹 ? 我目前的主目录和根文件系统的设置是通过使用LVM的两个驱动器来分割XFS。 lvdisplay -m示例输出lvdisplay -m

 Logical extent 0 to 117247: Type striped Stripes 2 Stripe size 64 KB Stripe 0: Physical volume /dev/sdb2 Physical extents 0 to 58623 Stripe 1: Physical volume /dev/sda2 Physical extents 0 to 58623 

不过,我刚刚阅读了诸如RAID之类的文章:对于家用电脑来说不是一个聪明的想法 , 两个硬盘比一个好吗? ,以及storagereview.com上的一篇文章,其中的所有内容都表示,使用RAID-0进行分条对于单用户台式机来说是浪费金钱和精力。

我希望其他人在这个问题上有什么经验可以确定,哪种configuration(如果有的话)跨两个磁盘进行LVM分割可以改善单用户Linux桌面体验?

我的问题是在什么情况下我应该条纹?

如果您正在讨论“镜像”条带,则可以使用它将数据从一个驱动器迁移到另一个驱动器。 您不会将其用作RAID-1的一种forms,因为它不像普通的md驱动程序那样高效。

如果你正在谈论一个扩展驱动器空间的条纹,那就是它的用途:当空间不足时。

否则,我不会打扰LVM条纹选项。

我希望其他人在这个问题上有什么经验可以确定,哪种configuration(如果有的话)跨两个磁盘进行LVM分割可以改善单用户Linux桌面体验?

那么,我已经打开了一个繁忙的服务器的LVM镜像,在eSATA机箱中有两个驱动器。 我观察到的行为是,它将“镜像”写入其他驱动器,并经常落后于主驱动器一两秒钟。 这让我非常紧张,因为在主驱动器故障期间可能存在潜在的一致性问题。 在大量写入的情况下,性能也是糟糕的,读取性能没有得到改善,因为它没有使用另一个驱动器来读取。 我放弃了该设置,并通过md驱动程序将其切换到RAID-1,速度增加立即可见,没有“突发”行为。

一些build议:

  • 如果您有四个相同大小的驱动器,并且您的所有数据都可以安装到两个驱动器上,那么我可以在任何一天轻松推荐RAID-5。 是的,你失去了2个驱动器,但是你比RAID-5获得了更多的冗余,并且你的访问时间“甚至超出了”。
  • 如果你只有两个驱动器,他们可以容纳所有的数据,我会推荐一个镜像(RAID-1)。
  • 如果您的驱动器大小不同,并且正在尝试节约成本,那么您可以放弃使用LVM将音量扩展到第二个驱动器, 前提是您知道所涉及的风险。 单一的驱动器故障意味着你会失去你所有的东西。

不过,我刚刚阅读了诸如RAID之类的文章:对于家用电脑来说不是一个聪明的想法两个硬盘比一个好吗? ,以及storagereview.com上的一篇文章 – 所有这些都说,使用RAID-0进行分条对于单用户台式机来说是浪费金钱和精力。

存在RAID-0条带的原因是:存储容量不足,暂时需要增加存储容量。 这里的关键词是“暂时的”,这个想法是,你将尽快解决这个问题。

如果你正在谈论一些可以擦拭和重新安装的游戏盒,那么是的,这是浪费时间。

如果你谈论的是一个能够处理你的生活的盒子,而让事情成功的唯一方法是把音量扩大到另一个驱动器,那么这是一个不同的故事。 你需要做你需要做的事情。

考虑到高清广播使用19.4Mbit / sec的最大比特率。 这是不到2.5MB /秒。 您可以一次录制4-5个高清广播,一个硬盘就可以跟上。 所以我想说在这种情况下风险大于收益。

您可能会注意到唯一的实际情况是,如果您将这些30GB文件复制到另一个通过千兆以太网进行某种扫描的系统,或者可能需要编辑这些video。 但我的猜测是,在这种情况下,我们正在谈论一个神话盒子,这也可能是商业广告。 因此,商业标记可能会稍微快一点,但是一旦stream被捕获,mythtv会将其作为后台进程。 尽pipe从最终用户的angular度看,我没有看到任何改进。

条带化可能不会帮助您的日常桌面活动。 当您的IO操作较大且相对较长时,最好使用条带。 在普通桌面上,通常会有很多小的随机IO操作,这些操作不会受益于条带。

恕我直言,条纹是最好的使用:

  1. 当你有大文件,你需要读/写。 多个磁盘很可能会出现在单个磁盘上。
  2. 您的物理卷下有良好的RAID支持。 如前所述,条带化会使您失去数据的机会翻番。
  3. 分开的控制器将帮助你获得更好的performance,因为这些工作将被真正分成几个渠道

我说 – 总是使用LVM。 你永远不知道什么时候你可能想要扩展你所使用的LV,所以为什么不select通过增加另一个驱动器,或者把整个事物添加到一个更大的驱动器,并在空的位置增加一个PV空间。

更不用说快照的可能性,以及LVM提供的其他function

至于那些文章,raid和LVM是不同的东西,并且在那里达到不同的目的。 Raid主要是为了增加存储的稳健性,或者提高速度。 LVM是关于灵活的空间pipe理和一些额外的好东西,如快照,否则只有在高端存储系统上才是可能的。

条带仅用于可能会丢失数据的地方。 你的块设备将是一个单一的驱动器的一半可靠。 如果你能以此为生换取额外的performance,那么分拆对你来说可能会奏效。

无论您获得额外的性能,都取决于系统的其他部分。 SATA芯片和系统其他部分之间是否存在瓶颈? 你真的是I / O绑定等

唯一简单的方法来看看你是否会获得什么是通过做你想使用系统的工作量的实验。

正如其他人所说,因为它给你的灵活性,总是使用LVM。 除非是tmp空间,否则我不会在家中使用非镜像条纹。

通常,工作站级设备上的“硬件RAID”适配器是垃圾。 关于这个话题有大量的StackOverflow问题,所以我将放弃这个问题。

无论采用什么方法,striping(又名RAID-0)都是改善IO界面应用程序性能的好方法。 该performance的价格是一个更高的,未知的额外的灾难性失败的风险。

这是一个大问题? 对我来说,这不是 – 我正在使用带有4个条纹驱动器的Mac Pro,所有这些都使用Time Machine进行备份。 当我从备份恢复时,我可以忍受几个小时的委托。 对于您,我build议您在继续使用条带之前采用可以与之共存的备份/恢复策略。

国际海事组织,只有当你不关心你的数据时,你才应该使用条带。

当您将数据分条到多个驱动器时,增加了丢失所有驱动器上的所有数据的风险,因为任何一个驱动器的故障意味着整个卷的完全损失…并且越多的驱动器越多,风险就越大。

因此,海事组织,“我应该什么时候条纹?”的答案。 要么是“从不”,要么是“当你分割镜像卷时,如在RAID-10中”。

如果数据本身和IO性能对你来说都很重要,那么用一个大容量电池供电的写入caching来获得一个好的硬件SAS RAID卡(例如一个Adaptec 3805或5805或类似的),然后制作一个RAID-6卷。 要使用RAID-6获得4TB,则需要6个1TB的驱动器。 再加上一个热的或冷的备用。

SAS控制器同时支持SAS驱动器和SATA驱动器。 上面提到的型号直接支持8个驱动器,但是通过使用SAS扩展器可以支持更多(以性能为代价 – 更多的驱动器意味着每个驱动器的IO带宽更less,但是您可能最多扩展到16个驱动器,而不会注意到每个SATA通道的3Gbps速度可能会达到250MB / s的IO速度,而目前优秀的非SSD驱动器则可以使用大约100-120MB / s左右的速度)。

或者,使用软件RAID-10(镜像卷的条带arrays)。 一个4TBarrays将需要8x1TB的驱动器。 例如,4个RAID-1arrays与RAID-0(或LVM)一起分条,用于单个4TB卷。

您可以在这些RAIDarrays之上使用LVM来pipe理空间。 如果要使用RAID-10路由,则可以使用LVM而不是RAID-0来完成条带化。

要考虑的另一件事是分离IO消耗应用程序,以便它们不会竞争IO。 例如,将您的操作系统放在一个小巧的驱动器上,例如80GB(或RAID-1镜像对),在另一个驱动器或RAID-1对上的编译器回退源代码,以及在RAID RAID 10或RAID RAID- 6。

并尽可能多的安装内存,因为linux将把它全部用于磁盘缓冲。 大多数常见的主板支持多达4个DDR-2或6个DDR-3记忆棒,所以2GB的棒比4GB棒便宜得多,你可以以合理的价格安装最大8GB或12GB。 如果你需要更多的东西,用更多的RAM插槽的服务器MB(来自Tyan或SuperMicro等)replace主板比使用4GB的支架更具成本效益。

哦,热插拔托架是一个好主意 – 当一个驱动器发生故障(不是如果,当),你需要能够尽快更换。 RAID-6可以应付任何两个驱动器同时发生故障,所以当1个驱动器出现故障时,只需要多一个驱动器就可以完成所有工作。 RAID-10可以应对更多的驱动器故障(只要每个镜像对中的一个存活,多达一半的驱动器可能会出现故障)。

最后是备份。 以前很多人已经提到RAID,它不能替代备份。 LTO-4是目前唯一能够在合理的时间内备份​​大量数据而无需花费几天时间更换磁带的磁带介质。 这样的驱动器价格昂贵,磁带盒看起来很昂贵(但是当你计算每千兆字节的成本时,其实比硬盘便宜)。 如果您的预算不能达到这个水平,那么您可以使用多个额外的驱动器(通过e-sata,火线,备用热插拔托架甚至USB连接)备份到 – 插入驱动器,运行备份,删除驱动器,货架上或现场存储…目前的驱动器容量高达2TB,随着时间的推移会变得更大,更便宜。 顺便说一下,目前的价格(一个裸LTO驱动器大约1500- 2000美元,1TB硬盘大约100美元 – 大约现在的澳大利亚美元价格),一个LTO驱动器的成本将购买15至20个硬盘驱动器备份..你可以在需要的时候购买,而不是一次性购买,价格每次都会明显降低。

这可能是因为所有我的游戏安装的驱动器比我的主要系统/工作分区所在的驱动器要旧一些,但是我注意到一些游戏在加载和间隔时间方面的明显改进,当我添加了第二个驱动器(相同的血统),然后设置为RAID0arrays。 不接近理论上两倍的performance,但足以引人注目。 这当然是相当主观的:我没有执行任何统计学上合理的基准。

这些文章相当陈旧,而存储评论专门讨论了PCI总线的局限性(这意味着它将成为大容量吞吐量的瓶颈,而不是现代驱动器,限制了RAID0的整体性能)。 但是如果您的控制器是基于PCI-E的,那么您将拥有更大的吞吐量。

话虽如此,我只是在我的桌面机上设置RAID0作为一个实验,看看它会有什么不同。 如果我在家里放置一台全新的桌上型个人电脑,我不确定是否再次做同样的事情。 对于桌面使用通常我build议使用一对驱动器作为RAID1arrays来获得冗余,而不是在RAID0configuration中使用它们,出于性能原因。