11.2 增加軟體 RAID 的大小

開始之前,請參閱節 11.1, 瞭解調整大小處理程序 中的準則。

11.2.1 增加元件分割區的大小

套用此節中的程序以增加 RAID 1、4、5 或 6 的大小。對於 RAID 中的每個元件分割區,請先將它從 RAID 移除,修改其大小,然後將它傳回 RAID,RAID 需要一定的穩定時間,隨後就可以繼續。移除分割區時,RAID 在降級模式下操作,此時不具備磁碟容錯功能或會降低此功能。即便對於能夠容許多個磁碟同時發生故障的 RAID,也不要一次移除多個元件分割區。

警告: 如果 RAID 不具備磁碟容錯功能或只是不一致,則移除任何分割區都會導致資料遺失。移除分割區時要非常小心,並確保已備份可用資料。

此節的程序使用下表顯示的設備名稱。確保修改名稱以使用自己設備的名稱。

表 11-3 增加元件分割區大小的案例

RAID 設備

元件分割區

/dev/md0

/dev/sda1

/dev/sdb1

/dev/sdc1

若要增加 RAID 元件分割區的大小,請執行下列步驟︰

  1. 開啟終端機主控台,以 root 使用者或同等身分登入。

  2. 輸入以下指令,以確保 RAID 陣列具有一致性且經過同步

    cat /proc/mdstat
    

    如果 RAID 陣列仍在根據指令的輸出進行同步,您必須等候同步完成,然後才能繼續。

  3. 從 RAID 陣列移除一個元件分割區。例如,若要移除 /dev/sda1,請輸入

    mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1
    

    為了操作成功,必須執行容錯和移除動作。

  4. 執行下列操作之一,增加在步驟 3 中移除之分割區的大小︰

    • 使用磁碟分割程式,如 fdisk(8)cfdisk(8)parted(8),增加分割區的大小。通常選擇此選項。

    • 用更大容量的設備取代分割區所在的磁碟。

      僅當原始磁碟上的其他檔案系統沒有被系統存取時,該選項才可用。當取代設備被新增回 RAID 時,它需要更久的時間來同步資料,因為此時必須重建原始設備上的所有資料。

  5. 再次將分割區新增至 RAID 陣列。例如,若要新增 /dev/sda1,請輸入

    mdadm -a /dev/md0 /dev/sda1
    

    請等候直至 RAID 實現同步和一致性,然後再繼續下一分割區。

  6. 對陣列中的每個剩餘元件設備重複執行步驟 2步驟 5 的操作。確保為正確的元件分割區修改指令。

  7. 如果系統發出訊息告知您核心無法重新讀取 RAID 的分割區表,則必須在調整所有分割區大小之後重新開機電腦,以強制更新分割區表。

  8. 請繼續執行節 11.2.2, 增加 RAID 陣列的大小

11.2.2 增加 RAID 陣列的大小

在調整 RAID 中每個元件分割區的大小後 (請參閱節 11.2.1, 增加元件分割區的大小),RAID 陣列組態會繼續使用原始陣列大小,直至您強制其知曉新的可用空間。您可以指定 RAID 的大小,或使用最大可用空間。

在本節的程序中,使用 RAID 設備的設備名稱 /dev/md0。請確保修改名稱以使用自己設備的名稱。

  1. 開啟終端機主控台,以 root 使用者或同等身分登入。

  2. 請輸入以下指令,以檢查陣列的大小及陣列可識別的設備大小

    mdadm -D /dev/md0 | grep -e "Array Size" -e "Device Size"
    
  3. 請執行下列其中一個步驟︰

    • 請輸入以下指令,以將陣列的大小增加到可用的最大大小

      mdadm --grow /dev/md0 -z max
      
    • 請輸入以下指令,以將陣列的大小增加到指定值

      mdadm --grow /dev/md0 -z size
      

      用適當的大小 (以 KB 為單位的整數值,1 KB 為 1024 位元組) 取代 size

  4. 請輸入以下指令,以重新檢查陣列的大小及陣列可識別的設備大小

    mdadm -D /dev/md0 | grep -e "Array Size" -e "Device Size"
    
  5. 請執行下列其中一個步驟︰

    • 如果已成功調整好陣列的大小,請繼續節 11.2.3, 增加檔案系統的大小

    • 如果陣列未調整到預期大小,您必須重新開機,然後再次嘗試執行此程序。

11.2.3 增加檔案系統的大小

在增加陣列的大小後 (請參閱節 11.2.2, 增加 RAID 陣列的大小),您就可以調整檔案系統的大小。

可以將檔案系統的大小增加到最大可用空間大小,或指定一個精確的值。為檔案系統指定精確大小時,請確保新大小符合以下條件︰

  • 新大小必須大於現有資料的大小;否則資料會遺失。

  • 新大小不得超過目前 RAID 的大小,因為檔案系統大小無法超過可用空間大小。

Ext2 或 Ext3

使用 resize2fs 指令掛接或卸載時,可以調整 Ext2 與 Ext3 檔案系統的大小。

  1. 開啟終端機主控台,以 root 使用者或同等身分登入。

  2. 使用下列方法之一增加檔案系統的大小︰

    • 若要將檔案系統的大小擴充至名為 /dev/md0 的軟體 RAID 設備的最大可用大小,請輸入

      resize2fs /dev/md0
      

      如果未指定大小參數,則預設大小為分割區的大小。

    • 若要將檔案系統擴充至指定大小,請輸入

      resize2fs /dev/md0 size
      

      size 參數可指定所需的檔案系統新大小。如果未指定單位,則大小參數的單位即為檔案系統的區塊大小。也可以選擇透過下列其中一種單位指示項給大小參數加上字尾︰s 表示 512 位元組磁區;K 表示 KB (1 KB 為 1024 位元組);M 表示 MB;G 表示 GB。

    請等候直至完成大小調整,然後再繼續。

  3. 如果未掛接檔案系統,請立即掛接。

    例如,若要在掛接點 /raid 為名為 /dev/md0 的 RAID 掛接 Ext2 檔案系統,請輸入

    mount -t ext2 /dev/md0 /raid
    
  4. 請輸入以下指令,以檢查在已掛接檔案系統上調整大小的效果

    df -h
    

    可用磁碟空間 (df) 指令可顯示磁碟的總大小、使用的區塊數以及檔案系統上可用的區塊數。-h 選項會以較易理解的格式列印大小,如 1K、234M 或 2G。

ReiserFS

對於 Ext2 與 Ext3,掛接或卸載 ReiserFS 檔案系統時可增加其大小。調整大小的操作是在 RAID 陣列的區塊設備上完成的。

  1. 開啟終端機主控台,以 root 使用者或同等身分登入。

  2. 使用以下其中一種方法,增加名為 /dev/md0 的軟體 RAID 設備上檔案系統的大小︰

    • 若要將檔案系統的大小擴充至設備的最大可用大小,請輸入

      resize_reiserfs /dev/md0
      

      若不指定大小,該指令會將磁碟區增加至分割區的總大小。

    • 若要將檔案系統擴充至指定大小,請輸入

      resize_reiserfs -s size /dev/md0
      

      用所需大小 (以位元組計) 取代 size。您也可以指定值的單位,例如 50000K (KB)、250M (MB) 或 2G (GB)。也可以使用加號 (+) 為值加上字首,以指定為目前大小增加的值。例如,以下指令可將 /dev/md0 上的檔案系統的大小增加 500 MB︰

      resize_reiserfs -s +500M /dev/md0
      

    請等候直至完成大小調整,然後再繼續。

  3. 如果未掛接檔案系統,請立即掛接。

    例如,若要為位於掛接點 /raid 處名稱為 /dev/md0 的 RAID 掛接 ReiserFS 檔案系統,請輸入

    mount -t reiserfs /dev/md0 /raid
    
  4. 請輸入以下指令,以檢查在已掛接檔案系統上調整大小的效果

    df -h
    

    可用磁碟空間 (df) 指令可顯示磁碟的總大小、使用的區塊數以及檔案系統上可用的區塊數。-h 選項會以較易理解的格式列印大小,如 1K、234M 或 2G。