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

管理叢集簡介

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

作業 

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

變更叢集的名稱 

如何變更叢集名稱

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

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

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

如何使用新叢集節點授權

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

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

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

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

變更專用主機名稱 

如何變更專用主機名稱

使叢集節點進入維護狀態 

如何使節點進入維護狀態

使叢集節點離開維護狀態 

如何使節點離開維護狀態

新增節點至叢集 

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

從叢集移除節點 

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

Procedure如何變更叢集名稱

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

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

  2. 鍵入 scsetup 指令。


    # scsetup
    

    顯示 Main Menu。

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

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

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


範例 7–1 變更叢集名稱

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


# scconf -c -C cluster=dromedary

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

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

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

步驟

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


    % scconf -pv | grep "Node ID"
    

範例 7–2 將節點 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

Procedure如何使用新叢集節點授權

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

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

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


    # scsetup
    

    顯示 Main Menu。

  3. 若要使用叢集認證,請鍵入 7 (新節點)。

    會出現 New Nodes 功能表。

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


範例 7–3 防止將新的機器增加至叢集

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


# scconf -a -T node=.


範例 7–4 允許將所有新機器增加至叢集

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


# scconf -r -T all


範例 7–5 指定要增加至叢集的新機器

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


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


範例 7–6 將認證設定為標準的 UNIX

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


# scconf -c -T authtype=unix


範例 7–7 將認證設定為 DES

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


# scconf -c -T authtype=des

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


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

Sun Cluster 使用網路時間協定 (NTP) 保持叢集節點間的時間同步。當節點同步化自己的時間時,會依需要在叢集內進行自動調整。請參閱「Sun Cluster 概念指南 (適用於 Solaris 作業系統)」和「網路時間協定使用者指南」,以取得更多資訊。


注意 – 注意 –

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


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

  2. 關閉叢集。


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

  4. 透過將 boot(1M)b 指令與 -x 選項搭配使用,來以非叢集模式啟動節點。

    • 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
    

ProcedureSPARC: 如何在節點上輸入 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 指令。

Procedure如何變更專用主機名稱

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

在安裝初始時,便會指定預設的專用主機名稱。預設的私有主機名稱格式為 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) 常駐程式。

    • 如果您使用的是 Solaris 8 或 Solaris 9,請使用 xntpd 指令關閉網路時間協定 (NTP) 常駐程式。請參閱 xntpd(1M) 線上手冊,以取得有關 NTP 常駐程式的更多資訊。


      # /etc/init.d/xntpd.cluster stop
      
    • 如果您使用的是 Solaris 10,請使用 svcadm 指令關閉網路時間協定 (NTP) 常駐程式。請參閱 svcadm(1M) 線上手冊,以取得有關 NTP 常駐程式的更多資訊。


      # svcadm disable ntp
      
  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 常駐程式。

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

    • 如果您使用的是 Solaris 8 或 Solaris 9,請使用 xntpd 指令重新啟動 NTP 常駐程式。


      # /etc/init.d/xntpd.cluster start
      
    • 如果您使用的是 Solaris 10,請使用 svcadm 指令重新啟動 NTP 常駐程式。


      # svcadm enable ntp
      
  10. 啟用在步驟 1 中停用的所有的資料服務資源和其他應用程式。


    # scswitch -e -j resource1, resource2
    

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


範例 7–8 變更私有主機名稱

以下範例在節點 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.]

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
    

    使之進入維護狀態的節點應具有值為 offlineStatus,並且其 PresentPossible 法定票數應為 0 (零)。


範例 7–9 使叢集節點進入維護狀態

下列範例使叢集節點進入維護狀態,同時確認結果。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

另請參閱

若要使節點返回線上運作,請參閱如何使節點離開維護狀態

Procedure如何使節點離開維護狀態

請使用下列程序使節點恢復連線,並重新設定法定票數為預設值。對於叢集節點,預設法定票數為一。對於法定裝置,預設法定票數是 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
    

    離開維護狀態的節點應該為 online 狀態,並顯示適當的 Present and Possible 法定票數。


範例 7–10 使叢集節點離開維護狀態與重設法定票數

以下範例將叢集節點及其法定裝置的法定票數重設為其預設值,同時驗證結果。scstat -q 輸出顯示 phys-schost-1 的 Node votes1,而狀態為 onlineQuorum 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