Raid

Mdadm 不會創建大於 10TB 的數組

  • July 29, 2014
  • 我有一台帶有六個 4TB 驅動器的伺服器,執行 Ubuntu 14.04 LTS。
  • 其中一個驅動器用於系統/作業系統
  • 我想使用其他 5 個驅動器來獲得盡可能接近 20TB 的儲存空間
  • 這是一個短期的數據分析項目,所以 RAID 0 很好
  • 我使用 fdisk 在 5 個驅動器的每一個上創建了一個 ~4TB 分區

執行 mdadm 創建 RAID 0 陣列後,結果只是 /dev/md0 上的 10TB 設備。尺寸是我預期的一半!

這是我用來創建數組的命令:

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=5 /dev/sd[bcdef]1

下面是一個fdisk -l輸出。關於為什麼我不能從驅動器中獲得更多空間的任何想法?

Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  4294967295  2147483647+  ee  GPT

Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes
90 heads, 3 sectors/track, 28940878 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xda4f04e2

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048  4294967294  2147482623+  83  Linux

Disk /dev/sdc: 4000.8 GB, 4000787030016 bytes
25 heads, 3 sectors/track, 104187162 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc9e57616

Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048  4294967294  2147482623+  83  Linux

Disk /dev/sdd: 4000.8 GB, 4000787030016 bytes
25 heads, 3 sectors/track, 104187162 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x53bed1ab

Device Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048  4294967294  2147482623+  83  Linux

Disk /dev/sde: 4000.8 GB, 4000787030016 bytes
25 heads, 3 sectors/track, 104187162 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xbc5c1069

Device Boot      Start         End      Blocks   Id  System
/dev/sde1            2048  4294967294  2147482623+  83  Linux

Disk /dev/sdf: 4000.8 GB, 4000787030016 bytes
25 heads, 3 sectors/track, 104187162 cylinders, total 7814037168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4801480c

Device Boot      Start         End      Blocks   Id  System
/dev/sdf1            2048  4294967294  2147482623+  83  Linux

Disk /dev/md0: 10995.1 GB, 10995108413440 bytes
2 heads, 4 sectors/track, -1610614656 cylinders, total 21474821120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 2621440 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

從命令末尾刪除 1:

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=5 /dev/sd[bcdef]

應該可以正常工作。我假設您想使用所有 5 個 RAID 磁碟上的所有可用空間。

fdisk不會創建大於 2TB(2^41 字節)的分區。這似乎有據可查;許多例子可以在這裡閱讀。5*2TB=10TB,這就是你得到的。

您需要使用 GNUparted在每個驅動器上放置 GPT 分區表;然後你就可以創建一個/dev/sdX1一直延伸到驅動器頂部的分區。

或者,正如 jski 建議的那樣,您可以使用原始設備而不是分區。不過,我會選擇分區方法,尤其是因為您始終可以將分區修剪到略低於磁碟頂部的位置,以防您需要用稍小的磁碟替換磁碟(是的,我知道那毫無意義RAID-0 中的考慮,但我覺得這是一個好習慣)。

引用自:https://serverfault.com/questions/616092