Sun Cluster 系統管理指南 (適用於 Solaris 作業系統)

管理叢集概觀

表 7–1 作業清單: 管理叢集

作業  

如需相關說明,請參閱...  

變更叢集的名稱 

如何變更叢集名稱

列出節點 ID 及其對應的節點名稱 

如何對應節點 ID 至節點名稱

容許或拒絕新節點將本身加到叢集中 

如何使用新叢集節點授權

使用「網路時間通訊協定」(Network Time Protocol,NTP) 變更叢集的時間 

如何在叢集重新設定日期時間

在以 SPARC 為基礎的系統上使節點顯示 OpenBoot PROM ok 提示符號,或在以 x86 為基礎的系統上使其進入啟動子系統

SPARC: 如何在節點上輸入 OpenBoot PROM (OBP)

變更專用主機名稱 

如何變更專用主機名稱

使叢集節點進入維護狀態 

如何使節點進入維護狀態

使叢集節點離開維護狀態 

如何使節點離開維護狀態

新增節點至叢集 

如何新增節點至已授權的節點清單

從叢集移除節點 

如何從叢集軟體配置移除節點

如何變更叢集名稱

如有必要,您可以在初次安裝之後變更叢集名稱。

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

  2. 鍵入 scsetup 指令。


    # scsetup
    

    顯示 Main Menu。

  3. 若要變更叢集名稱,請鍵入 7 (其他叢集屬性)。

    此時會顯示「其他叢集屬性」功能表。

  4. 從功能表選取,接著依螢幕上出現的指示進行。

範例—變更叢集名稱

以下範例顯示產生自 scsetup (1M) 公用程式的 scconf( 1M) 指令,可用來變更為新叢集名稱 dromedary


# scconf -c -C cluster=dromedary

如何對應節點 ID 至節點名稱

在安裝 Sun Cluster 期間,會自動為每一個節點指定一個唯一的節點 ID 號碼。 指定給節點的節點 ID 號碼是依它第一次加入叢集的順序,一旦指定後,該號碼便不可以變更。 節點 ID 編號通常用於錯誤訊息中識別與訊息相關的叢集節點。 請使用這個程序來判斷節點 ID 與節點名稱之間的對應。

您不必是超級使用者也可以列示配置資訊。

  1. 使用 scconf(1M) 指令列出叢集配置資訊。


    % scconf -pv | grep "Node ID"
    

範例—對應節點 ID 至節點名稱

下列範例顯示節點 ID 指定。


% scconf -pv | grep “Node ID”
(phys-schost-1) Node ID:                    1
(phys-schost-2) Node ID:                    2
(phys-schost-3) Node ID:                    3

如何使用新叢集節點授權

Sun Cluster 可讓您決定新節點是否可以將其自身新增至叢集,並決定使用的授權類型。 您可以容許任何新節點透過公用網路加入叢集、拒絕新節點加入叢集,或指示可加入叢集的特定節點。 可使用標準 UNIX 或 Diffie-Hellman (DES) 授權來驗證新節點。 如果您選取 DES 授權,您還必須先配置所有必要的暗碼鍵,節點才能夠加入。 請參閱 keyserv (1M)publickey(4) 線上說明手冊,以取得詳細資訊。

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

  2. 輸入 scsetup(1M) 公用程式。


    # scsetup
    

    顯示 Main Menu。

  3. 要使用叢集授權,請鍵入 6 (新節點)。

    會出現 New Nodes 功能表。

  4. 從功能表選取,接著依螢幕上出現的指示進行。

範例—防止新機器加入到叢集

以下範例顯示產生自 scsetup 公用程式的 scconf 指令,可防止新機器加入到叢集。


# scconf -a -T node=.

範例—容許所有新機器加入到叢集

以下範例顯示產生自 scsetup 公用程式的 scconf 指令,可允許所有的新機器加入到叢集。


# scconf -r -T all

範例—指定要加入到叢集的新機器

以下範例顯示產生自 scsetup 公用程式的 scconf 指令,可將單一新機器加入到叢集。


# scconf -a -T node=phys-schost-4

範例—將授權設成標準 UNIX

以下範例顯示 scconf 指令,這是產生自 scsetup 公用程式,可將加入叢集的新節點重設到標準 UNIX 授權。


# scconf -c -T authtype=unix

範例—將授權設成 DES

以下範例顯示 scconf 指令,這是產生自 scsetup 公用程式,以便對加入叢集的新節點使用 DES 授權。


# scconf -c -T authtype=des

註解 –

如果使用 DES 授權,您還必須先配置所有必要的暗碼鍵,節點才能夠加入叢集。 請參閱 keyserv (1M)publickey(4) 線上說明手冊,以取得詳細資訊。


如何在叢集重新設定日期時間

Sun Cluster 使用網路時間協定 (NTP) 來維護叢集節點間的時間同步。 當節點同步化自己的時間時,會依需要在叢集內進行自動調整。 請參閱Sun Cluster 概念指南 (適用於 Solaris 作業系統)以及Network Time Protocol User's Guide,以取得詳細資訊。


小心 – 小心 –

如果您使用 NTP,請不要在啟動並執行叢集時調整叢集時間。 這些方法包括以互動方式使用 date(1)rdate(1M)xntpd(1M) 指令,或者在 cron(1M) 程序檔中使用這些指令。


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

  2. 關閉叢集。


    # scshutdown -g0 -y
    

  3. 在 [目前的啟動參數] 畫面上,請確認節點顯示 ok 提示符號或 Select (b)oot or (i)nterpreter 提示符號。

  4. 使用 boot(1M) 或配合 -x 選項使用 b 指令,以非叢集模式啟動節點。

    • SPARC︰


      ok boot -x
      

    • x86︰


                            <<< Current Boot Parameters >>>
      Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@7,1/
      sd@0,0:a
      Boot args:
      
      Type    b [file-name] [boot-flags] <ENTER>  to boot with options
      or      i <ENTER>                           to enter boot interpreter
      or      <ENTER>                             to boot with defaults
      
                        <<< timeout in 5 seconds >>>
      Select (b)oot or (i)nterpreter: b -x
      

  5. 在單一節點上,執行 date 指令來設定時間。


    # date HHMM.SS
    

  6. 在其他機器上,執行 rdate(1M) 指令來使時間和該節點同步。


    # rdate hostname
    

  7. 將每一個節點重新開機來啟動叢集。


    # reboot
    

  8. 確認變更在所有的叢集節點都生效。

    請在每一個節點上執行 date 指令。


    # date
    

SPARC: 如何在節點上輸入 OpenBoot PROM (OBP)

如果您需要配置或變更 OpenBoot PROM 設定,則請使用此程序。

  1. 連接到終端機集線器。


    # telnet tc_name tc_port_number
    

    tc_name

    指定終端機集線器的名稱。

    tc_port_number

    指定終端機集線器上的通訊埠編號。 通訊埠編號和配置相關聯。 通常連接埠 2 與 3 (5002 及 5003) 適用於安裝在站點的第一個叢集。

  2. 依程序關閉叢集節點,方法為使用 scswitch (1M) 指令以撤出所有資源或磁碟裝置群組,然後使用 shutdown


    # scswitch -S -h node[,...]
    # shutdown -g0 -y -i0
    


    小心 – 小心 –

    請勿在叢集主控台上使用 send brk 來關閉叢集節點。


  3. 執行 OBP 指令。

如何變更專用主機名稱

安裝完成後,使用此程序變更叢集節點的專用主機名稱。

在安裝初始時,便會指定預設的專用主機名稱。 預設的專用主機名稱以 clusternode<nodeid>-priv 形式出現,例如: clusternode3-priv。 請您唯有在專用主機名稱已在網域中使用時才去更動它。


小心 – 小心 –

請勿嘗試為新的專用主機名稱指定 IP 位址。 叢集軟體會指定它們。


  1. 在叢集的所有節點上,停用可能快取專用主機名稱的所有資料服務資源或其他應用程式。


    # scswitch -n -j resource1, resource2
    

    包括下列您停用的應用程式。

    • HA-DNS 與 HA-NFS 服務 (如果已經配置的話)。

    • 所有已經自訂配置以使用專用主機名稱的應用程式。

    • 任何用戶端用來私下交互連接的應用程式。

    請參閱 scswitch(1M) 線上說明手冊以及Sun Cluster Data Services Planning and Administration Guide for Solaris OS,以取得有關使用 scswitch 指令的資訊。

  2. 關閉叢集中每一節點上的「網路時間通訊協定」(NTP) 常駐程式。

    請參閱 xntpd(1M) 線上說明手冊,以取得有關 NTP 常駐程式的詳細資訊。


    # /etc/initd./xntpd.cluster stop
    

  3. 執行 scsetup(1M) 公用程式來變更適當節點的專用主機名稱。

    唯有在叢集中的一個節點才需這麼做。


    註解 –

    在選擇新的專用主機名稱時,請確定該名稱在叢集節點中是唯一的。


  4. 請從 Main Menu 選取 5Private Hostnames

  5. 請從 Private Hostnames Menu 選取 1Change a Private Hostname

    系統提示時,請回答問題。 您將會被問及變更專用主機名稱的節點名稱 (clusternode<nodeid-priv),以及新的專用主機名稱。

  6. 清除名稱服務快取記憶體。

    在叢集的每一個節點上執行此工作。 這可避免叢集應用程式和資料服務嘗試去存取舊的專用主機名稱。


    # nscd -i hosts
    

  7. 在每一節點上編輯 ntp.conf.cluster 檔案,以變更為新的專用主機名稱。

    您可使用偏好的編輯工具。

    如果此步驟在安裝時便已完成,亦請記得移除已配置節點的名稱;在預設範本中有十六個預先配置好的節點。 通常,每個叢集節點中的 ntp.conf.cluster 檔案都完全相同。

  8. 請確認從所有叢集節點 ping 到的新專用主機名稱。

  9. 重新啟動 NTP 常駐程式。

    在叢集的每一個節點上執行此工作。


    # /etc/initd./xntpd.cluster start
    

  10. 啟用所有「資料服務」資源,和其它在 步驟 1 中停用的應用程式。


    # scswitch -e -j resource1, resource2
    

    請參閱 scswitch 線上說明手冊與Sun Cluster Data Services Planning and Administration Guide for Solaris OS,以取得有關使用 scswitch 指令的資訊。

範例—變更專用主機名稱

以下範例顯示如何在節點 phys-schost-2 上將專用主機名稱由 clusternode2-priv 變更為 clusternode4-priv


[Disable all applications and data services as necessary.]
phys-schost-1# /etc/init.d/xntpd stop
phys-schost-1# scconf -p | grep node
 ...
 Cluster nodes:                  phys-schost-1 phys-schost-2 phys-
 schost-3
 Cluster node name:                                 phys-schost-1
  Node private hostname:                           clusternode1-priv
 Cluster node name:                                 phys-schost-2
  Node private hostname:                           clusternode2-priv
 Cluster node name:                                 phys-schost-3
  Node private hostname:                           clusternode3-priv
 ...
phys-schost-1# scsetup
phys-schost-1# nscd -i hosts
phys-schost-1# vi /etc/inet/ntp.conf
 ...
 peer clusternode1-priv
 peer clusternode4-priv
 peer clusternode3-priv
phys-schost-1# ping clusternode4-priv
phys-schost-1# /etc/init.d/xntpd start
[Enable all applications and data services disabled at the beginning of the procedure.]

如何使節點進入維護狀態

在停止叢集節點的服務時使節點進入維護狀態,直到延展的寬限期為止。 這樣,在維護節點時便不會影響法定票數。 若要使叢集節點進入維護狀態,必須使用 scswitch(1M)shutdown(1M) 來關閉節點。


註解 –

請使用 Solaris shutdown 指令來關閉單一節點。 僅在關閉整個叢集時才應使用 scshutdown 指令。


當叢集節點關閉並進入維護狀態時,所有配置為和節點有連接埠相連的法定裝置,它們的法定票數都會減一。 當節點離開維護模式成為線上狀態時,節點與法定裝置的票數會加上一。

您需要使用 scconf(1M) 指令來使叢集節點進入維護狀態。 scsetup(1M) 公用程式不包含用來使法定裝置進入維護狀態的功能。

  1. 在要進入維護狀態的節點上成為超級使用者。

  2. 撤出此節點的任何資源群組和磁碟裝置群組。


    # scswitch -S -h node[,...]
    

    -S

    從指定的節點撤出所有的裝置服務與資源群組。

    -h node[,...]

    指定您要用來切換資源群組及裝置群組的節點。

  3. 關閉您已撤出的節點。


    # shutdown -g0 -y -i0
    

  4. 在叢集的另一個節點成為超級使用者,並使您在步驟 3 中關閉的節點進入維護狀態。


    # scconf -c -q node=node,maintstate
    

    -c

    指定 scconf 指令的變更形式。

    -q

    管理法定選項。

    node=node

    指定要變更之節點的節點名稱或節點 ID。

    maintstate

    使節點進入維護狀態。

  5. 確認叢集節點現在已經進入維護狀態。


    # scstat -q
    

    要進入維護狀態的節點必須有 offline Status,以及為 0 (零) 的 PresentPossible 法定票數。

範例—使叢集節點進入維護狀態

下列範例使叢集節點進入維護狀態,同時確認結果。 scstat -q 輸出顯示 phys-schost-1 的 Node votes0 (零),而狀態為 OfflineQuorum Summary 應該也會顯示減少的票數。 根據您的配置,Quorum Votes by Device 輸出可能也會指出某些法定磁碟裝置為離線。


[On the node to be put into maintenance state:]
phys-schost-1# scswitch -S -h phys-schost-1
phys-schost-1# shutdown -g0 -y -i0

[On another node in the cluster:]
phys-schost-2# scconf -c -q node=phys-schost-1,maintstate
phys-schost-2# scstat -q

-- Quorum Summary --
  Quorum votes possible:      3
  Quorum votes needed:        2
  Quorum votes present:       3

-- Quorum Votes by Node --
                    Node Name           Present Possible Status
                    ---------           ------- -------- ------
  Node votes:       phys-schost-1       0        0       Offline
  Node votes:       phys-schost-2       1        1       Online
  Node votes:       phys-schost-3       1        1       Online

-- Quorum Votes by Device --
                    Device Name         Present Possible Status
                    -----------         ------- -------- ------
  Device votes:     /dev/did/rdsk/d3s2  0        0       Offline
  Device votes:     /dev/did/rdsk/d17s2 0        0       Offline
  Device votes:     /dev/did/rdsk/d31s2 1        1       Online

下一步

若要恢復節點連線,請參閱 如何使節點離開維護狀態

如何使節點離開維護狀態

請使用下列程序使節點恢復連線,並重新設定法定票數為預設值。 對於叢集節點,預設法定票數為一。 對於法定裝置,預設法定票數是 N-1,其中 N 為具有非零票數之節點的數目,這些節點和法定裝置之間有埠相連。

當節點進入維護狀態時,節點的法定票數會遞減一。 所有配置為和節點之間有連接埠的法定裝置,都會使它們的法定票數遞減。 當法定票數被重設且某個節點離開維護狀態時,節點的法定票數和法定裝置票數會遞增一。

請在節點已進入維護狀態、而您要使它離開維護狀態的任何時候,執行此程序。


小心 – 小心 –

如果您不指定 globaldevnode 選項,將重設整個叢集的法定票數。


  1. 成為叢集中任何節點的超級使用者,而不是在進入維護狀態的節點上。

  2. 您是否要在兩個節點的叢集中使節點離開維護狀態?

  3. 如果使用法定數目,請從不是處於維護狀態的節點重新設定叢集法定票數。

    您必須重設未處於維護狀態之節點的法定票數,然後再重新啟動節點,否則該節點可能會掛起並等待法定數目。


    # scconf -c -q node=node,reset
    

    -c

    指定 scconf 指令的變更形式。

    -q

    管理法定選項。

    node=node

    請指定要重新設定的節點名稱,例如 phys-schost-1。

    reset

    重設法定數目的變更旗號。

  4. 啟動您想要離開維護狀態的節點。

  5. 驗證法定票數。


    # scstat -q
    

    離開維護狀態的節點應該處於線上狀態,並顯示適當的現有票數與可能法定票數。

範例—使叢集節點離開維護狀態,並重新設定法定票數

以下範例將叢集節點及其法定裝置的法定票數重設為其預設值,同時驗證結果。 scstat -q 輸出顯示 phys-schost-1 的節點票數1,而狀態為線上Quorum Summary 應該也會顯示增加的票數。


phys-schost-2# scconf -c -q node=phys-schost-1,reset

於 phys-schost-1 上︰


phys-schost-1# scstat -q

-- Quorum Summary --

  Quorum votes possible:      6
  Quorum votes needed:        4
  Quorum votes present:       6

-- Quorum Votes by Node --

                    Node Name           Present Possible Status
                    ---------           ------- -------- ------
  Node votes:       phys-schost-1       1        1       Online
  Node votes:       phys-schost-2       1        1       Online
  Node votes:       phys-schost-3       1        1       Online

-- Quorum Votes by Device --

                    Device Name         Present Possible Status
                    -----------         ------- -------- ------
  Device votes:     /dev/did/rdsk/d3s2  1        1       Online
  Device votes:     /dev/did/rdsk/d17s2 1        1       Online
  Device votes:     /dev/did/rdsk/d31s2 1        1       Online