我有一台 Linux(debian/ubuntu)服务器,配备 4 个 Intel SSD 910 800GB pcie,我需要将它们组合在一起进行 RAID。
这些卡的最大问题是,它们为您提供了 4x200GB 驱动器,而您无法对其进行硬件突袭(有关更多信息,请参见此处:http://www.intel.com/support/ssdc/hpssd/sb/CS-034181.htm)
因此 Linux 检测到这些驱动器:
- sda——系统驱动器
- sdb-卡#1
- sdc-卡#1
- sdd-卡片#1
- sde-卡片#1
- SDF-卡牌#2
- sdg-卡牌#2
- sdh-卡#2
- sdi-卡片#2
- sdj-卡片#3
- sdk - 卡片 #3
- sdl-卡片#3
- sdm-卡片#3
- sdn-卡片#4
- sdo-卡片#4
- sdp-卡片#4
- sdq-卡#4
如果我像平常一样对这些进行 RAID,比如说 RAID-10,并且例如卡#1 坏了,我会同时丢失 4 个驱动器(sdb,sdc,sdd,sde),这可能会导致数据丢失?
所以我想我确实像大多数 SSD 卡一样,“内部 RAID-0”:
$ mdadm --create /dev/md0 --level=0 --raid-devices=4 /dev/sd[b-e]
$ mdadm --create /dev/md1 --level=0 --raid-devices=4 /dev/sd[f-i]
$ mdadm --create /dev/md2 --level=0 --raid-devices=4 /dev/sd[j-m]
$ mdadm --create /dev/md3 --level=0 --raid-devices=4 /dev/sd[n-q]
$ mdadm --create /dev/md4 --level=1 --raid-devices=4 /dev/md[0-3]
但这是一个 RAID-01,与 RAID-10 相比没有任何优势...所以如果我做一个 RAID-10,我想会发生这样的事情:
$ mdadm --create /dev/md0 --level=1 --raid-devices=8 /dev/sdb[a-h]
$ mdadm --create /dev/md1 --level=1 --raid-devices=8 /dev/sdb[i-q]
$ mdadm --create /dev/md2 --level=0 --raid-devices=2 /dev/md[0-1]
问题是,如果卡#1 坏了,我会丢失前 4 个驱动器,如果 sdb 在 sdc 上镜像怎么办?
因此,在决定之后,问题是,我们应该选择什么块大小和块大小来在此上运行 PostgreSQL?我认为我们将使用 XFS,但也欢迎提出想法。
总结一下:
- 需要能够丢失一张卡而不会丢失数据(我们有冷备用卡)
- 需要至少 1600GB 的 RAID
答案1
你的第一直觉是正确的:
所以我想我确实像大多数 SSD 卡一样,“内部 RAID-0”:(剪辑)但这是一个 RAID-01,与 RAID-10 相比没有任何优势......
唯一需要改变的是你的最后一行:
$ mdadm --create /dev/md4 --level=10 --raid-devices=4 /dev/md[0-3]
(注意变化:level=10)
这实际上将每张卡变成一个独立的 RAID0 阵列,然后创建单个元素的 RAID10 阵列。它本质上是 RAID010(条带的镜像条带)。如果任何一张卡坏了,你仍然有另一张卡,上面有相同的镜像数据。