Sun Cluster 軟體安裝指南 (適用於 Solaris 作業系統)

在叢集中建立磁碟組

本節說明如何為叢集配置建立磁碟組。在下列情況下,您可能不需要建立磁碟組:

本節包含以下程序︰

如何建立磁碟組

請執行此程序建立磁碟組。

  1. 確定在建立新的磁碟組後,叢集是否具有三個以上的磁碟組。

    • 如果叢集具有的磁碟組少於三個,則略過至步驟 2

    • 如果叢集具有四個或四個以上的磁碟組,則執行以下步驟來準備叢集。

      無論是第一次安裝磁碟組,還是在完全配置好的叢集中增加更多磁碟組,您均必須執行此作業。

    1. 在叢集的任何節點上,檢查 md_nsets 變數值,該變數值位於 /kernel/drv/md.conf 檔中。

    2. 如果叢集中的磁碟組總數大於現有的 md_nsets 值減去一,則增加 md_nsets 值,以達到所需的值。

      最大許可磁碟組數目比 md_nsets 的配置值小一。md_nsets 的最大可能值為 32,因此,您可以建立的最大許可磁碟組數目為 31。

    3. 確定 /kernel/drv/md.conf 檔在叢集的每個節點上都相同。


      Caution – Caution –

      未遵循此準則會導致嚴重的 Solstice DiskSuite 或 Solaris 容體管理程式錯誤並可能會有資料流失。


    4. 如果您已變更任一節點上的 md.conf 檔案,則請執行以下步驟,以使變更生效。

      1. 在某一個節點上關閉叢集。


        # scshutdown -g0 -y
        

      2. 重新啟動叢集的每個節點。


        ok> boot
        

    5. 在叢集的每一個節點上執行 devfsadm(1M) 指令。

      您可以在叢集的所有節點上同時執行此指令。

    6. 從叢集的某個節點處,執行 scgdevs(1M) 指令以更新整體裝置名稱空間。

    7. 在每個節點上,確認 scgdevs 指令已於您嘗試建立任意磁碟組之前完成了處理。

      scgdevs 指令在所有節點上自行遠端呼叫,即使只從一個節點執行指令也是如此。若要判斷 scgdevs 指令是否已經完成作業,請在叢集的每個節點上執行下列指令。


      % ps -ef | grep scgdevs
      

  2. 確定您要建立的磁碟組符合以下需求之一。

    • 如果磁碟組配置為只有兩個磁碟串聯,則該磁碟組必須只連線至兩個節點,並只使用兩個仲裁者主機。這些仲裁者主機必須與磁碟組使用的兩個主機相同。請參閱配置雙串聯仲裁者,以取得有關如何配置雙串聯仲裁者的詳細資訊。

    • 如果磁碟組配置為具有兩個以上磁碟串聯,請確定任何兩個磁碟串聯 S1 與 S2 上的磁碟機總數超過第三個串聯 S3 上的磁碟機數目。此需求用公式表達為計數 (S1) + 計數 (S2) > 計數 (S3)。

  3. 確定本機狀態資料庫副本是否存在。

    相關說明,請參閱 如何建立狀態資料庫副本

  4. 成為主控磁碟組的叢集節點上的超級使用者。

  5. 建立磁碟組。

    以下指令建立磁碟組,並將磁碟組註冊為 Sun Cluster 磁碟裝置群組。


    # metaset -s setname -a -h node1 node2
    
    -s setname

    指定磁碟組名稱

    -a

    增加 (建立) 磁碟組

    -h node1

    指定主控磁碟組的主節點名稱

    node2

    指定主控磁碟組的次要節點名稱


    注意 –

    當您執行 metaset 指令來配置叢集上的 Solstice DiskSuite 或 Solaris 容體管理程式裝置群組時,依預設指令會指定一個次要節點。您可以在建立裝置群組之後,使用 scsetup(1M) 公用程式來變更裝置群組中所需的次要節點數目。請參閱Sun Cluster 系統管理指南 (適用於 Solaris 作業系統)」中的「管理磁碟裝置群組」,以取得關於如何變更 numsecondaries 特性的詳細資訊。


  6. 驗證新磁碟組的狀態。


    # metaset -s setname
    

  7. 將磁碟機增加至磁碟組。

    移至將磁碟機增加至磁碟組

範例 — 建立磁碟組

下列指令建立兩個磁碟組 dg-schost-1dg-schost-2,並將節點 phys-schost-1phys-schost-2 指定為潛在主節點。


# metaset -s dg-schost-1 -a -h phys-schost-1 phys-schost-2
# metaset -s dg-schost-2 -a -h phys-schost-1 phys-schost-2

將磁碟機增加至磁碟組

將磁碟機增加至磁碟組後,容體管理軟體將按以下所示重新分割磁碟機,以便磁碟組的狀態資料庫可以放置在磁碟機上。

如何將磁碟機增加至磁碟組

  1. 成為節點上的超級使用者。

  2. 確定已建立磁碟組。

    相關說明,請參閱 如何建立磁碟組

  3. 列出 DID 對應。


    # scdidadm -L
    

    • 選擇將主控或可能主控磁碟組的叢集節點共用的磁碟機。

    • 在將磁碟機增加至磁碟組時,請使用完整的裝置 ID 路徑名稱。

    輸出的第一欄是 DID 實例編號,第二欄是完整實體路徑名稱,第三欄是完整裝置 ID 路徑名稱 (虛擬路徑)。共用磁碟機有一個以上相同 DID 實例編號的項目。

    在下列範例中,DID 實例編號為 2 的項目指示由 phys-schost-1phys-schost-2 共用的磁碟機,並且完整的裝置 ID 路徑名稱為 /dev/did/rdsk/d2


    1       phys-schost-1:/dev/rdsk/c0t0d0 /dev/did/rdsk/d1
    2       phys-schost-1:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    2       phys-schost-2:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    3       phys-schost-1:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    3       phys-schost-2:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    …

  4. 取得磁碟組的所有權。


    # metaset -s setname -t
    
    -s setname

    指定磁碟組名稱

    -t

    取得磁碟組的所有權。

  5. 將磁碟機增加至磁碟組。

    使用完整的裝置 ID 路徑名稱。


    # metaset -s setname -a drivename
    

    -a

    將磁碟機增加至磁碟組

    drivename

    共用磁碟機的完整裝置 ID 路徑名稱


    注意 –

    將磁碟機增加至磁碟組時,請使用低階裝置名稱 (cNtXdY)。因為低階裝置名稱是本機名稱,在叢集中並非唯一,使用此名稱會使 metaset 無法切換。


  6. 驗證磁碟組與磁碟機的狀態。


    # metaset -s setname
    

  7. (選擇性的) 若要重新分割磁碟機以用於元式裝置或容體,請移至如何重新分割磁碟組中的磁碟機

  8. 移至如何建立 md.tab,以使用 md.tab 檔案定義元式裝置或容體。

範例 — 將磁碟機增加至磁碟組

metaset 指令將磁碟機 /dev/did/rdsk/d1/dev/did/rdsk/d2 增加至磁碟組 dg-schost-1


# metaset -s dg-schost-1 -a /dev/did/rdsk/d1 /dev/did/rdsk/d2

如何重新分割磁碟組中的磁碟機

metaset(1M) 指令重新分割磁碟組中的磁碟機,以便將每個磁碟機的一小部分保留在片段 7 中以供 Solstice DiskSuite 或 Solaris 容體管理程式軟體使用。每個磁碟機的剩餘空間均放置在片段 0。為了更有效地使用磁碟機,請使用此程序修改磁碟佈局。如果您將空間分配給片段 1 到 6,則您可以在設定 Solstice DiskSuite 元式裝置或 Solaris 容體管理程式 容體時使用這些片段。

  1. 成為叢集節點的超級使用者。

  2. 使用 format 指令變更磁碟組中每個磁碟機的磁碟分割。

    重新分割磁碟機時,必須滿足下列條件,以免 metaset(1M) 指令重新分割磁碟機。

    • 建立始於磁柱 0 的片段 7,此片段足以容納狀態資料庫副本。請參閱 Solstice DiskSuite 或 Solaris 容體管理程式管理指南,以確定您所擁有版本的容體管理程式軟體之狀態資料庫副本的大小。

    • 將片段 7 中的 Flag 欄位設定成 wu (讀寫、可卸載)。請勿將它設成唯讀。

    • 請勿讓片段 7 與磁碟機上的任何其它片段重疊。

    請參閱 format(1M) 線上援助頁,以取得詳細資訊。

  3. 使用 md.tab 檔定義元式裝置或容體。

    移至如何建立 md.tab

如何建立 md.tab

在叢集的每一個節點建立 /etc/lvm/md.tab 檔。使用 md.tab 檔案,為您建立的磁碟組定義 Solstice DiskSuite 元式裝置或 Solaris 容體管理程式容體。


注意 –

如果使用的是本機元式裝置或容體,請確定本機元式裝置或容體名稱與用於形成磁碟組的裝置 ID 名稱不同。例如,如果在磁碟組中使用裝置 ID 名稱 /dev/did/dsk/d3,則請勿將名稱 /dev/md/dsk/d3 用於本機元式裝置或容體。此條件不適用於共用元式裝置或容體,因為共用元式裝置或容體採用的命名慣例為 /dev/md/setname/{r}dsk/d#



提示 –

若要避免叢集環境中本機元式裝置或容體之間可能造成的困擾,請使用讓每一個本機元式裝置或容體名稱在整個叢集中為唯一名稱的命名機制。例如,節點 1 使用 d100-d199 的名稱,節點 2 則使用 d200-d299 的名稱。


  1. 成為叢集節點的超級使用者。

  2. 建立 md.tab 檔時,請列出 DID 對應以作為參考。

    md.tab 檔中使用完整裝置 ID 路徑名稱,以取代低階裝置名稱 (cNtXdY)。


    # scdidadm -L
    

    在下列範例中,輸出的第一欄是 DID 實例編號,第二欄是完整實體路徑名稱,第三欄則是完整裝置 ID 路徑名稱 (虛擬路徑)。


    1       phys-schost-1:/dev/rdsk/c0t0d0 /dev/did/rdsk/d1
    2       phys-schost-1:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    2       phys-schost-2:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    3       phys-schost-1:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    3       phys-schost-2:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    …

  3. 建立 /etc/lvm/md.tab 檔,並使用您偏好的文字編輯式手動編輯此檔案。

    請參閱 Solstice DiskSuite 或 Solaris 容體管理程式說明文件以及 md.tab(4) 線上援助頁,以取得關於如何建立 md.tab 檔案的詳細資訊。


    注意 –

    如果在將用於子鏡像的磁碟機上有現有資料,則必須在設定元式裝置或容體之前備份這些資料。然後將資料回復至鏡像。


  4. 啟動 md.tab 檔案中定義的元式裝置或容體。

    移至如何啟動元式裝置或容體

範例—md.tab 檔範例

下列 md.tab 檔案範例定義名為 dg-schost-1 的磁碟組。md.tab 檔案中各行的順序並不重要。


dg-schost-1/d0 -m dg-schost-1/d10 dg-schost-1/d20
    dg-schost-1/d10 1 1 /dev/did/rdsk/d1s0
    dg-schost-1/d20 1 1 /dev/did/rdsk/d2s0

下面範例使用 Solstice DiskSuite 的專用詞彙。針對 Solaris 容體管理程式,異動元式裝置改稱為異動容體,元式裝置則改稱為容體。否則下列處理程序對兩個容體管理程式均有效。

md.tab 檔案範例結構如下。

  1. 第一行將裝置 d0 定義為元式裝置 d10d20 的鏡像。-m 表示該裝置為鏡像裝置。


    dg-schost-1/d0 -m dg-schost-1/d0 dg-schost-1/d20

  2. 第二行將元式裝置 d10 (d0 的第一個子鏡像) 定義為單向條塊。


    dg-schost-1/d10 1 1 /dev/did/rdsk/d1s0

  3. 第三行將元式裝置 d20 (d0 的第二個子鏡像) 定義為單向條塊。


    dg-schost-1/d20 1 1 /dev/did/rdsk/d2s0

如何啟動元式裝置或容體

執行此程序,以啟動在 md.tab 檔中定義的 Solstice DiskSuite 元式裝置或 Solaris 容體管理程式容體。

  1. 成為叢集節點的超級使用者。

  2. 確定 md.tab 檔位於 /etc/lvm 目錄中。

  3. 確定您對執行指令的節點上的磁碟組擁有所有權。

  4. 取得磁碟組的所有權。


    # metaset -s setname -t
    
    -s setname

    指定磁碟組名稱

    -t

    取得磁碟組的所有權

  5. 啟動在 md.tab 檔案中定義的磁碟組的元式裝置或容體。


    # metainit -s setname -a
    
    -a

    啟動 md.tab 檔案中的所有元式裝置

  6. 為每個主控裝置和記錄裝置,連接第二個子鏡像 (submirror2)。

    md.tab 檔案中的元式裝置或容體啟動時,只有主控裝置和記錄裝置的第一個子鏡像 (submirror1) 是已經連接的,所以 submirror2 必須以手動方式連接。


    # metattach mirror submirror2
    

  7. 對於叢集中的每個磁碟組,重複步驟 3步驟 6

    必要時,請從連線至磁碟機的另一個節點執行 metainit(1M) 指令。 對叢集對拓樸而言,此步驟是必要的,但並非所有節點均可在此拓樸上存取磁碟機。

  8. 檢查元式裝置或容體的狀態。


    # metastat -s setname
    

    請參閱 metastat(1M) 線上援助頁,以取得詳細資訊。

  9. 如果叢集包含的磁碟組配置為只有兩個磁碟附件和兩個節點,則增加雙串聯仲裁者。

    移至配置雙串聯仲裁者

  10. 移至如何建立叢集檔案系統以建立叢集檔案系統。

範例—啟動 md.tab 檔中的元式裝置或容體

在下列範例中,啟動在 md.tab 檔案中為磁碟組 dg-schost-1 定義的所有元式裝置。接著主控裝置 >dg-schost-1/d1 與記錄裝置 dg-schost-1/d4 的第二個子鏡像也會啟動。


# metainit -s dg-schost-1 -a
# metattach dg-schost-1/d1 dg-schost-1/d3
# metattach dg-schost-1/d4 dg-schost-1/d6