2011/04/08

10T 的 RAID 掛在 RHEL6 上只抓到 2T ??

10T 的 RAID 掛在 RHEL Linux 6 上用 ext4 作業系統 上只抓到 2T 的容量 ??

這是今天遇到的問題,其實好像在2年前就有遇到,但兩年前硬碟容量還沒現在隨隨便便就突破 2T 。

為何會產生這原因的關係要從 MBR (Master Boot Record)講起 
http://en.wikipedia.org/wiki/Master_boot_record
中文 http://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95

* 從主開機紀錄的結構可以知道,它僅僅包含一個64個位元組的硬碟分割表。在MBR分割表中最多4個主分割或者3個主分割+1個擴充功能分割,也就是說擴充功能分割只能有一個,然後可以再細分為多個邏輯分割。
* 在MBR分割表中,一個分割最大的容量為2T,且每個分割的起始柱面必須在這個disk的前2T內。你有一個3T的硬碟,根據要求你至少要把它劃分為2個分割,且最後一個分割的起始磁區要位於硬碟的前2T空間內。

GPT分割表,支援最大卷為18 EB(Exabytes)。所以如果你硬碟太大,只能用 GPT分割表來使用。
http://en.wikipedia.org/wiki/GUID_Partition_Table
http://zh.wikipedia.org/wiki/GUID%E7%A3%81%E7%A2%9F%E5%88%86%E5%89%B2%E8%A1%A8

但是我們常用的 fdisk 只支援 MBR 所以如果需要使用 GPT 必須用 parted 這個分割工具。
分割過程如下:

[root@cu-tmp ~]# parted /dev/sdb
GNU Parted 2.1
使用 /dev/sdb
歡迎使用 GNU Parted!輸入 'help' 來檢視命令列表。
(parted) mkpart
分割區名稱? []? p
檔案系統類型? [ext2]? ext4
起始點? 0
結束點? 9995000
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/取消/Cancel? i
(parted) print
Model: IBM 1726-2xx FAStT (scsi)
磁碟 /dev/sdb:9997GB
磁區大小 (邏輯/物理):512B/512B
分割區:gpt

編號 起始點 結束點 大小 檔案系統 名稱 旗標
1 17.4kB 9995GB 9995GB p

(parted) q
資訊: You may need to update /etc/fstab.

* parted
[root@cu-tmp ~]# parted /dev/sdb
GNU Parted 2.1
使用 /dev/sdb
歡迎使用 GNU Parted!輸入 'help' 來檢視命令列表。
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
check 編號 對檔案系統進行簡單的檢查
cp [來源裝置] 來源編號 目標編號 將檔案系統複製到另一個分割區
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER
mkpart 分割區類型 [檔案系統類型] 起始點 結束點 建立一個分割區
mkpartfs 分割區類型 檔案系統類型 起始點 結束點 建立一個帶有檔案系統的分割區
move 編號 起始點 結束點 移動指定「編號」的分割區
name 編號 名稱 將指定「編號」的分割區命名為「名稱」
print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found partitions, or a particular
partition
quit 離開程式
rescue 起始點 結束點 挽救臨近「起始點」、「結束點」的遺失的分割區
resize 編號 起始點 結束點 改變位於指定「編號」的分割區中檔案系統的大小
rm 編號 刪除指定「編號」的分割區
select 設備 選擇要編輯的設備
set 編號 旗標 狀態 改變指定「編號」分割區的旗標
toggle [編號 [旗標]] 切換「編號」分割區上的「旗標」狀態
unit 單位 設定預設的「單位」
version display the version number and copyright information of GNU Parted

* 分割完成後,再來就是格式化,格式化有 ext?系列的這幾種格式選擇,則最大分割區大小上限取決於你的 block 設定的大小, ext2 最大是 32T 但是這是在 4kb block 下的結果,所以如果超過請選用 ext4 檔案系統。


* mkfs.ext4 /dev/sdb1
root@cu-tmp ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
610050048 inodes, 2440185542 blocks
122009277 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
74469 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632


Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:


* mount
[root@cu-tmp ~]# mount -t ext4 /dev/sdb1 /storage/

* df -lh
[root@cu-tmp ~]# df -lh
檔案系統 Size Used Avail Use% 掛載點
/dev/mapper/vg_cutmp-lv_root
50G 3.5G 44G 8% /
tmpfs 16G 0 16G 0% /dev/shm
/dev/sda2 485M 34M 426M 8% /boot
/dev/sda1 200M 240K 200M 1% /boot/efi
/dev/mapper/vg_cutmp-lv_home
453G 199M 430G 1% /home
/dev/sdb1 9.0T 168M 8.5T 1% /storage

* 寫入 fstab
root@cu-tmp ~]# tail /etc/fstab
/dev/mapper/vg_cutmp-lv_root / ext4 defaults 1 1
UUID=a7f9f990-4f1a-4197-b8b4-8757cc61c6a5 /boot ext4 defaults 1 2
UUID=0CA6-490F /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/mapper/vg_cutmp-lv_home /home ext4 defaults 1 2
/dev/mapper/vg_cutmp-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sdb1 /storage ext4 defaults 0 0

張貼留言