# バーチャルシャーシスタック（VCS） / 運用

VCS運用中の状態確認方法、障害発生時の対処方法、メンテナンス作業の手順について解説します。

## VCSグループの運用状態確認

VCSグループの運用状態は、CLIコマンドの出力を見ることで確認できます。

### 前提事項

以下の説明は次の前提に基づいています。異なる構成の場合は適宜読み替えてください。

- メンバー2台でVCSグループを構成する。メンバーIDは1、2とする。
- 各メンバーのプライオリティーは、ID=1を最優先の64、ID=2を2番手の128に設定する。これにより、初期状態ではID=1がマスターになる。
- スタックリンクは、SFP/SFP+ポートを使用。
  以下では便宜上、1つ目のSFP/SFP+ポートを「スタックポート1（S1）」、2つ目を「スタックポート2（S2）」と表記する。
  ID=1のスタックポート1（S1）をID=2のスタックポート2（S2）に接続、ID=1のスタックポート2にID=2のスタックポート1を接続した構成とする。
  Note

  他のポートをスタックリンクとして使用する場合は、以下の文中にある「スタックポート1（S1）」、「スタックポート2（S2）」を適宜読み替えてください。また、スタック接続に使用可能なポート、モジュール、ケーブルなどの詳細については、導入編の基本仕様をご参照ください。

- レジリエンシーリンク（RL）の接続には、各メンバーの本体スイッチポート1と2を使う。接続順序はスタックリンクと同じで、ID=1のスイッチポート1をID=2のスイッチポート2に接続、ID=2のスイッチポート1をID=1のスイッチポート2に接続、したリング構成とする。
- 表中の「Pri」はプライオリティー、「RL 1」、「RL 2」は「レジリエンシーリンク用スイッチポート1」、「レジリエンシーリンク用スイッチポート2」、「S1 L/A」はスタックポート1（S1）の L/A LED、「S2 L/A」はスタックポート2（S2）の L/A LEDを示す。また、「緑」は「緑点灯」、「×」は「消灯」を示す。
- ファイバースタックモジュールを使用しており、レジリエンシーリンクを使用していない場合、「RL1」、「RL2」の表示は意味を持たない。

### 基本的な考え方

#### マスターの確認

どのメンバーがマスターとして動作しているかを確認します。
スタックメンバーの役割を確認するにはshow stackコマンドを使います。
知らないうちにマスターのメンバーが変わっていたら、何らかの障害によりマスター切り替えが起きたと推測できます。
また、マスターが 2 つ以上存在している場合は、スタックリンク障害の可能性があります。
使用しているスタックポートのL/A LEDでスタックリンクが分断されていないか確認するとよいでしょう。

#### スタックリンク

使用しているスタックポートのL/A LEDで各メンバー間のスタックリンクが正常かどうか確認します。
2台構成なら、各メンバー2ポートずつ、合計4ポートのLEDがすべて緑点滅しているのが正常です。
1つでも消灯していたら、その部分のリンクに障害が発生しています。物理的に接続されているのに LED が消灯している場合はケーブルかモジュールの障害が考えられます。スタックリンク障害時は、まずはケーブルを交換してみるのがよいでしょう。

#### レジリエンシーリンク

レジリエンシーリンク用に設定したスイッチポートの LED でレジリエンシーリンクが正常かどうか確認します。
各メンバー2ポートずつ、合計4ポートのLEDがすべて緑点滅しているのが正常です。
1つでも消灯していたら、その部分のリンクに障害が発生しています。物理的に接続されているのに LED が消灯している場合はケーブルかポートの障害が考えられます。まずはケーブルを交換してみて、それでもだめなら CLI でレジリエンシーリンクのポートを変更するのがよいでしょう。

### 初期状態

初期状態では、ID=1がマスターとなり、残りのメンバーがスレーブとなります。

このとき、LED表示は次のようになります。

メンバー | スタックリンク | RL 1 | RL 2
ID | Pri | 状態 | S1 L/A | S2 L/A | L/A | L/A
1 | 64 | マスター | 緑 | 緑 | 緑 | 緑
2 | 128 | スレーブ | 緑 | 緑 | 緑 | 緑

Note

ファイバースタックモジュールを使用しており、レジリエンシーリンクを使用していない場合、「RL1」、「RL2」の表示はVCSグループの運用状態を確認する上では意味を持ちません（以下同じです）。

### マスター障害

マスターが何らかの原因でダウンすると、次点のプライオリティーを持つスレーブメンバーが新マスターに昇格します。
たとえば、初期状態でマスターとして動作していたID=1がダウンすると、2番目にプライオリティーの高いID=2が新マスターに昇格します。

このとき、LED表示は次のようになります。

メンバー | スタックリンク | RL 1 | RL 2
ID | Pri | 状態 | S1 L/A | S2 L/A | L/A | L/A
1 | 64 | ダウン | × | × | × | ×
2 | 128 | マスター | × | × | × | ×

ID=1がダウン後に再起動してきた場合は、マスターではなくスレーブとしてVCSグループに復帰します。

このとき、LED表示は次のようになります。

メンバー | スタックリンク | RL 1 | RL 2
ID | Pri | 状態 | S1 L/A | S2 L/A | L/A | L/A
1 | 64 | スレーブ | 緑 | 緑 | 緑 | 緑
2 | 128 | マスター | 緑 | 緑 | 緑 | 緑

### スレーブ障害

スレーブがダウンした場合は、ダウンしたスレーブ上のポートが使えなくなりますが、VCSグループ全体の状態は変化しません。
たとえば、スレーブとして動作していたID=2がダウンすると、ID=1がマスターという状態のままVCSグループは動作し続けます。

このとき、LED表示は次のようになります。

メンバー | スタックリンク | RL 1 | RL 2
ID | Pri | 状態 | S1 L/A | S2 L/A | L/A | L/A
1 | 64 | マスター | × | × | × | ×
2 | 128 | ダウン | × | × | × | ×

ID=2がダウン後に再起動してきた場合は、再びスレーブとしてVCSグループに復帰します。

これは初期状態と同じ。したがって、このときのLED表示も次のように初期状態と同じになります。

メンバー | スタックリンク | RL 1 | RL 2
ID | Pri | 状態 | S1 L/A | S2 L/A | L/A | L/A
1 | 64 | マスター | 緑 | 緑 | 緑 | 緑
2 | 128 | スレーブ | 緑 | 緑 | 緑 | 緑

### スタックリンク障害（１箇所ダウン）

スタックリンクをリング状に接続している場合、スタックリンクが1箇所ダウンしても、VCSグループ全体の状態は変化しません。
たとえば、ID=1のスタックポート1とID=2のスタックポート2のスタックリンクがダウンすると次のような構成になります。

残っているID=1のスタックポート2とID=2のスタックポート1でスタックリンクは継続稼働しているため、ID=1がマスター、ID=2がスレーブという状態のままVCSグループは動作し続けます。
このとき、LED表示は次のようになります。

メンバー | スタックリンク | RL 1 | RL 2
ID | Pri | 状態 | S1 L/A | S2 L/A | L/A | L/A
1 | 64 | マスター | × | 緑 | 緑 | 緑
2 | 128 | スレーブ | 緑 | × | 緑 | 緑

スタックリンクが1箇所だけダウンした場合、もっとも可能性が高いのはスタックモジュールの問題です。この場合は問題のあるケーブルを交換するだけで、VCSグループが元の構成に戻ります。

### スタックリンク障害（すべてダウン）

スタックリンクがすべてダウンするとVCSグループが分断されてしまいます。
ただし、VCSグループが分断されても、レジリエンシーリンクを使用している場合はマスターの存在を確認できるため、マスターとスタックリンク的に切り離されてしまったスレーブは、スイッチポートを無効化し、Disabled Master（DM）状態に移行します。

このとき、LED表示は次のようになります。

メンバー | スタックリンク | RL
ID | Pri | 状態 | S1 L/A | S2 L/A | L/A
1 | 64 | マスター | × | × | 緑
2 | 128 | ポート無効化 | × | × | 緑

### レジリエンシーリンク（１箇所ダウン）

レジリエンシーリンクに障害が発生しても、VCSグループの動作に直接的な影響はありません。
たとえば、ID=1、2間のレジリエンシーリンクが１箇所ダウンした場合、VCSグループの構成は次のように初期状態のまま変わりません。

このとき、LED表示は次のようになります。

メンバー | スタックリンク | RL 1 | RL 2
ID | Pri | 状態 | S1 L/A | S2 L/A | L/A | L/A
1 | 64 | マスター | 緑 | 緑 | × | 緑
2 | 128 | スレーブ | 緑 | 緑 | 緑 | ×

### レジリエンシーリンク（すべてダウン）

レジリエンシーリンクがすべてダウンした場合、VCSグループの動作に直接的な影響はありません。
しかし、そのままではスタックリンク障害の発生時にスレーブがマスターの存在を確認できず、複数のスイッチがマスターとして動作してしまう可能性がありますので、なるべく早めにイーサネットケーブルの交換やレジリエンシーリンク用スイッチポートの変更などを行ってください。

このとき、LED表示は次のようになります。

メンバー | スタックリンク | RL 1 | RL 2
ID | Pri | 状態 | S1 L/A | S2 L/A | L/A | L/A
1 | 64 | マスター | 緑 | 緑 | × | ×
2 | 128 | スレーブ | 緑 | 緑 | × | ×

## VCSグループ運用中のメンテナンス作業

### メンバーの交換

メンバーの交換は次の手順で行います。

1. 交換するメンバーの取り外し
2. 新しいメンバーの追加

スレーブの交換はVCSグループ全体の状態には影響しませんが、マスターの交換はマスター切り替えをともないます。マスターとして動作中のメンバーを交換した後、交換後のメンバーをマスターにしたいときは、VCSグループを再起動してください。
以下では、例として次の構成におけるID=2のメンバーを交換することを考えます。

#### メンバーの取り外し

1. ID=2のメンバーの電源を切ります。
2. ID=2のメンバーからスタックケーブル、スタックモジュール、レジリエンシーリンク用イーサネットケーブルを取り外します。これにより、VCSグループはID=1のみの構成で運用を継続します。

#### メンバーの追加

1. 追加するスイッチ（以下「新メンバー」とします）を単体起動し、ファームウェアバージョン統一などの初期設定を行い、いったん電源を切ります（導入編のスタックメンバーの初期設定を参照）。
2. 新メンバーにスタックモジュールを取り付け、スタックケーブルは接続せずに起動します。
3. 必要に応じて、新メンバーのスタックメンバーIDとプライオリティーを変更します。
   ここでは、ID=2の機器を交換しているので、新メンバーのIDも「2」に設定します。また、プライオリティーは「192」に設定するものとします。
   最初にshow stackコマンドを実行して、現在のIDとプライオリティーを確認してください。この例ではID=1、プライオリティー128（初期値）に設定されていることがわかります。

       awplus> show stack
       Virtual Chassis Stacking summary information

       ID  Pending ID  MAC address        Priority  Status  Role
       1   -           0015.77ad.f818     128       Ready   Active Master

       Operational Status                 Standalone unit
       Stack MAC address                  0015.77ad.f818

4. スタックメンバーIDを変更するには、stack renumberコマンドを使って次のようにします。

       awplus> enable
       awplus# configure terminal
       Enter configuration commands, one per line.  End with CNTL/Z.
       awplus(config)# stack 1 renumber 2
       Warning: the new ID will not become effective until the stack-member reboots.
       Warning: the boot configuration may now be invalid.

5. 新しいスタックメンバーIDを有効にするため、reloadコマンドかrebootコマンドで新メンバーをいったん再起動します（再起動の前に設定を保存する必要はありません）。

       awplus(config)# end
       awplus# reload
       reboot system? (y/n): y

6. 再起動後にログインしたら、もう一度show stackコマンドを実行して、現在のIDとプライオリティーを確認します。この例ではIDが2に変更されているのがわかります。

       awplus> show stack
       Virtual Chassis Stacking summary information

       ID  Pending ID  MAC address        Priority  Status  Role
       2   -           0015.77ad.f818     128       Ready   Active Master

       Operational Status                 Standalone unit
       Stack MAC address                  0015.77ad.f818

7. 次にプライオリティーを変更します。これは、stack priorityコマンドを使います。

       awplus> enable
       awplus# configure terminal
       Enter configuration commands, one per line.  End with CNTL/Z.
       awplus(config)# stack 2 priority 192

8. 再度show stackコマンドを実行して、現在のIDとプライオリティーを確認します。これでID=2、プライオリティー192と希望の状態になりました。

       awplus> show stack
       Virtual Chassis Stacking summary information

       ID  Pending ID  MAC address        Priority  Status  Role
       2   -           0015.77ad.f818     192       Ready   Active Master

       Operational Status                 Standalone unit
       Stack MAC address                  0015.77ad.f818

9. 以下のコマンドを用いてスイッチチップに対する設定やVCSに関する設定を変更している場合は、運用中のマスタースイッチと同一に設定します。
   - stack management subnet
   - stack management vlan
   - stack virtual-chassis-id
   - stack virtual-mac
   - stackport
   Note

   同一ネットワーク上に複数のVCSグループが存在するときは、該当するVCSグループ間でバーチャルシャーシID（stack virtual-chassis-id）が重複しないよう注意して設定してください。バーチャルシャーシIDは、show stackコマンドをdetailオプション付きで実行したときに表示される「Virtual Chassis ID」欄で確認できます。

   Note

   バーチャルMACアドレス機能は、stack enableコマンドでVCS機能を有効化すると自動的に有効化されます。stack virtual-macコマンドをno形式で実行することにより無効化もできますが、VCS使用時は必ずバーチャルMACアドレス機能を有効にした状態で運用してください。無効状態での運用はサポート対象外となります。

   Note

   上記コマンド以外にも設定変更時に以下のメッセージが表示されるコマンドにつきましても同様に運用中のマスタースイッチと同一に設定してください。

       % The device needs to be restarted for this change to take effect.

   以下の例では、VCS管理用VLAN 4000, VCS管理用サブネットアドレス 172.21.255.64、バーチャルシャーシID 127（0x07f）と仮定しています。

       awplus> enable
       awplus# configure terminal
       Enter configuration commands, one per line. End with CNTL/Z.
       awplus(config)# stack management vlan 4000
       awplus(config)# stack management subnet 172.21.255.64
       awplus(config)# stack virtual-mac
       awplus(config)# stack virtual-chassis-id 127

10. 設定内容を確認し、スタートアップコンフィグに保存します。

        awplus(config)# end
        awplus# show running-config
        ...（表示されるコンフィグに問題がないことを確認） ...
        awplus# copy running-config startup-config
        This will lose configuration for non-existent stack members, continue? (y/n): y
        Building configuration...
        [OK]

11. 新メンバーの電源を切ります。
12. 稼働中のマスター（ID=1）と新メンバー（ID=2）をスタックケーブルで接続して、新メンバーの電源を入れます。これにより、新メンバーはスレーブとしてVCSグループに加わります。
    Note

    新メンバーの電源は切った状態でスタックケーブルを接続してください。電源オンの状態でVCSグループに接続するとマスター重複の状態となり、プライオリティーの低い機器でリブートが発生します。

13. レジリエンシーリンクの設定と接続をします。
    ID=2のスイッチポートを1つ選んでswitchport resiliencylinkコマンドを実行した上で、該当ポートにレジリエンシーリンク用のイーサネットケーブルを接続してください。たとえば、ポート2.0.1をレジリエンシーリンクとして使う場合は次のコマンドを実行します。

        vcg(config)# interface port2.0.1
        vcg(config-if)# switchport resiliencylink

14. 設定内容を確認し、スタートアップコンフィグに保存します。

        vcg(config)# end
        vcg# show running-config
        ...（表示されるコンフィグに問題がないことを確認） ...
        vcg# copy running-config startup-config
        Building configuration...
        [OK]
        VCS synchronizing file across the stack, please wait..
        File synchronization with stack member-2 successfully completed
        [DONE]

新メンバー追加後の構成は次のようになります。

運用中のVCSグループにメンバーを追加した場合、新メンバーはつねにスレーブとしてグループに加入します（既存メンバーよりもプライオリティー値が小さくてもマスターにはなりません）。新メンバーをマスターとして動作させたいときは、VCSグループを再起動してください。

### スタックモジュール、スタックケーブルの交換

各メンバーの電源は入れたまま、問題のあるスタックケーブル、スタックモジュールを取り外し、新しいスタックモジュール、スタックケーブルをつなぎなおしてください。

### レジリエンシーリンクの交換

各メンバーの電源は入れたまま、問題のあるイーサネットケーブルを取り外し、新しいケーブルをつなぎなおしてください。

### ファームウェアバージョンアップ

VCSグループの運用中にファームウェアをバージョンアップする場合は、次の手順にしたがってください。
ここでは説明のため、次の環境を想定します。

- マスター（ID=1）、スレーブ（ID=2）でVCSグループを運用中
- VCSグループのホスト名は「vcg」
- 現在のファームウェアバージョンは5.5.6-0.2
- 新しいファームウェアバージョンは5.5.6-0.3
- 新しいファームウェアのイメージファイルx240-5.5.6-0.3.relは、VCSグループからアクセス可能なTFTPサーバー10.100.10.70上に置かれている
  Note

  5.5.6-0.3は説明上使用している架空のファームウェアです。5.5.6-0.2リリース時点では実在しませんのでご注意ください。

1. show stackコマンドを実行し、VCSグループが正しく構築されていることを確認してください。

       vcg# show stack
       Virtual Chassis Stacking summary information

       ID  Pending ID  MAC address        Priority  Status  Role
       1   -           0009.41fb.c7eb     128       Ready   Active Master
       2   -           0009.41fb.cfaf     128       Ready   Backup Member

       Operational Status                 Normal operation
       Stack MAC address                  0009.41fb.c7eb

2. TFTPサーバー上などで、新しいファームウェアイメージファイルのサイズを確認してください。Windowsならファイルの「プロパティ」や「dir」コマンド、UNIXなら「ls -l」コマンドなどで確認します。
3. show file systemsコマンドを実行して、各メンバーのフラッシュメモリー空き容量を確認します。（表示例は一例です。容量は機種によって異なります）

       vcg# show file systems

       Stack member 1:

        Size(b)  Free(b)  Type   Flags  Prefixes   S/D/V   Lcl/Ntwk  Avail
       -------------------------------------------------------------------
        920.3M   816.1M   flash     rw  flash:     static  local      Y
             -        -   system    rw  system:    virtual local      -
       ...

       Stack member 2:

        Size(b)  Free(b)  Type   Flags  Prefixes   S/D/V   Lcl/Ntwk  Avail
       -------------------------------------------------------------------
        920.3M   816.1M   flash     rw  flash:     static  local      Y
             -        -   system    rw  system:    virtual local      -
       ...

   この例では、メンバー1、2とも空き容量が816.1MByteであると確認できます。空き容量とイメージファイルのサイズを比較して、すべてのメンバーにイメージファイルを格納するのに充分な空きがあることを確認してください。
   いずれかのメンバーの空き容量が足りない場合は、deleteコマンドで不要なファイルを削除して空きを作ってください。たとえば、メンバー2の空き容量が足りない場合は、次のようにして不要なファイルを削除します。

       vcg# dir vcg-2/flash:/*.rel
        ...
        1401740 -rw- Jan 01 2011 00:00:00  vcg-2/flash:/x240-nolonger-used.rel
        ...
       vcg# delete vcg-2/flash:/x240-nolonger-used.rel
       Deleting....................................................
       Successful operation

   ここで、コマンド中の「vcg-2/」はスレーブのファイルシステムを指定するための書式で、VCSグループのホスト名（例ではvcg）、半角ハイフン、スレーブのスタックメンバーID（例では2）、半角スラッシュをつなげたものです。
   「vcg-2/」は一例ですので、実際にはご使用の環境におけるホスト名とスタックメンバーIDを指定してください。たとえば、VCSグループのホスト名が「november」でスレーブのスタックメンバーIDが「3」のときは、「vcg-2/」の代わりに「november-3/」と指定します。なお、ホスト名を明示的に設定していない場合、VCSグループのホスト名は「awplus」となります（たとえば、「awplus-2/」などと指定します）。
   スレーブファイルシステムの指定方法については、応用編をご覧ください。
4. 新しいファームウェアのイメージファイルをマスターにダウンロードします。

       vcg# copy tftp://10.100.10.70/x240-5.5.6-0.3.rel flash
       Enter destination file name [x240-5.5.6-0.3.rel]:
       Copying....................................................
       Successful operation

5. boot systemコマンドを使って、新しいイメージファイルを通常用ファームウェアに指定します。このコマンドを実行すると、マスター上のイメージファイルがスレーブメンバーに自動的にコピーされます。イメージファイルの設定は、コマンド実行時にシステムファイルに保存されるため、copyコマンドやwrite fileコマンド、write memoryコマンドなどでコンフィグに保存する必要はありません。

       vcg# configure terminal
       Enter configuration commands, one per line.  End with CNTL/Z.
       vcg(config)# boot system x240-5.5.6-0.3.rel
       VCS synchronizing file across the stack, please wait........................
       File synchronization with stack member-2 successfully completed
       [DONE]

6. show bootコマンドを実行して、通常用ファームウェアイメージの設定を確認します。また、各メンバーに対してdirコマンドを実行し、すべてのメンバーに新しいファームウェアのイメージファイルが存在することを確認してください。

       vcg# show boot
       Boot configuration
       --------------------------------------------------------------------------------
       Current software   : x240-5.5.6-0.2.rel
       Current boot image : flash:/x240-5.5.6-0.3.rel
       Backup  boot image : Not set
       Default boot config: flash:/default.cfg
       Current boot config: flash:/default.cfg (file exists)
       Backup boot config : Not set
       Autoboot status    : disabled

       vcg# dir *.rel
        14492851 -rw- May 11 2012 06:42:05  flash:/x240-5.5.6-0.3.rel
        ...

       vcg# dir vcg-2/flash:/*.rel
        14492851 -rw- May 11 2012 06:42:05  vcg-2/flash:/x240-5.5.6-0.3.rel
        ...

7. VCSグループ全体を再起動します。
   Note

   再起動中は通信断が発生します。

       vcg(config)# end
       vcg# reload
       Are you sure you want to reboot the whole stack? (y/n): y
       ...

8. 再起動完了後、show systemコマンドでファームウェアバージョンを確認し、show stackコマンドでVCSグループが正しく構築されていることを確認します。問題がなければ、以上でバージョンアップは完了です。

### VCSホットソフトウェアアップグレード

VCSホットソフトウェアアップグレードは、reload rolling/reboot rollingコマンドを用いて、マスターの切り替えと再起動、ファームウェアバージョンアップをメンバーごとに順番に行う機能です。
Note

reload rolling/reboot rollingコマンドは、メジャーバージョンアップには使用できません。

reload rolling/reboot rollingコマンドを使用して、VCSグループの運用中にファームウェアをバージョンアップする場合は、次の手順にしたがってください。ここでは説明のため、次の環境を想定します。（以下の説明では、実際のバージョンや画面とは異なる場合があります。）

- マスター（ID=1）、スレーブ（ID=2）でVCSグループを運用中
- VCSグループのホスト名は「vcg」
- 現在のファームウェアバージョンは5.5.6-0.2
- 新しいファームウェアバージョンは5.5.6-0.3
- 新しいファームウェアのイメージファイルx240-5.5.6-0.3.relは、VCSグループからアクセス可能なTFTPサーバー10.100.10.70上に置かれている
  Note

  5.5.6-0.3は説明上使用している架空のファームウェアです。5.5.6-0.2リリース時点では実在しませんのでご注意ください。

1. show stackコマンドを実行し、VCSグループが正しく構築されていることを確認してください。

       vcg# show stack
       Virtual Chassis Stacking summary information

       ID  Pending ID  MAC address        Priority  Status  Role
       1   -           0009.41fb.c7eb     128       Ready   Active Master
       2   -           0009.41fb.cfaf     128       Ready   Backup Member

       Operational Status                 Normal operation
       Stack MAC address                  0009.41fb.c7eb

2. TFTPサーバー上などで、新しいファームウェアイメージファイルのサイズを確認してください。Windowsならファイルの「プロパティ」や「dir」コマンド、UNIXなら「ls -l」コマンドなどで確認します。
3. show file systemsコマンドを実行して、各メンバーのフラッシュメモリー空き容量を確認します。（表示例は一例です。容量は機種によって異なります）

       vcg# show file systems

       Stack member 1:

        Size(b)  Free(b)  Type   Flags  Prefixes   S/D/V   Lcl/Ntwk  Avail
       -------------------------------------------------------------------
        920.3M   816.1M   flash     rw  flash:     static  local      Y
             -        -   system    rw  system:    virtual local      -
       ...

       Stack member 2:

        Size(b)  Free(b)  Type   Flags  Prefixes   S/D/V   Lcl/Ntwk  Avail
       -------------------------------------------------------------------
        920.3M   816.1M   flash     rw  flash:     static  local      Y
             -        -   system    rw  system:    virtual local      -
       ...

   この例では、メンバー1、2とも空き容量が816.1MByteであると確認できます。空き容量とイメージファイルのサイズを比較して、すべてのメンバーにイメージファイルを格納するのに充分な空きがあることを確認してください。
   いずれかのメンバーの空き容量が足りない場合は、deleteコマンドで不要なファイルを削除して空きを作ってください。たとえば、メンバー2の空き容量が足りない場合は、次のようにして不要なファイルを削除します。

       vcg# dir vcg-2/flash:/*.rel
        ...
        1401740 -rw- Jan 01 2011 00:00:00  vcg-2/flash:/x240-nolonger-used.rel
        ...
       vcg# delete vcg-2/flash:/x240-nolonger-used.rel
       Deleting....................................................
       Successful operation

   ここで、コマンド中の「vcg-2/」はスレーブのファイルシステムを指定するための書式で、VCSグループのホスト名（例ではvcg）、半角ハイフン、スレーブのスタックメンバーID（例では2）、半角スラッシュをつなげたものです。
   「vcg-2/」は一例ですので、実際にはご使用の環境におけるホスト名とスタックメンバーIDを指定してください。たとえば、VCSグループのホスト名が「november」でスレーブのスタックメンバーIDが「3」のときは、「vcg-2/」の代わりに「november-3/」と指定します。なお、ホスト名を明示的に設定していない場合、VCSグループのホスト名は「awplus」となります（たとえば、「awplus-2/」などと指定します）。
   スレーブファイルシステムの指定方法については、応用編をご覧ください。
4. 新しいファームウェアのイメージファイルをマスターにダウンロードします。

       vcg# copy tftp://10.100.10.70/x240-5.5.6-0.3.rel flash
       Enter destination file name [x240-5.5.6-0.3.rel]:
       Copying....................................................
       Successful operation

5. boot systemコマンドを使って、新しいイメージファイルを通常用ファームウェアに指定します。このコマンドを実行すると、マスター上のイメージファイルがスレーブメンバーに自動的にコピーされます。イメージファイルの設定は、コマンド実行時にシステムファイルに保存されるため、copyコマンドやwrite fileコマンド、write memoryコマンドなどでコンフィグに保存する必要はありません。

       vcg# configure terminal
       Enter configuration commands, one per line.  End with CNTL/Z.
       vcg(config)# boot system x240-5.5.6-0.3.rel
       VCS synchronizing file across the stack, please wait........................
       File synchronization with stack member-2 successfully completed
       [DONE]

6. show bootコマンドを実行して、通常用ファームウェアイメージの設定を確認します。また、各メンバーに対してdirコマンドを実行し、すべてのメンバーに新しいファームウェアのイメージファイルが存在することを確認してください。

       vcg# show boot
       Boot configuration
       --------------------------------------------------------------------------------
       Current software   : x240-5.5.6-0.2.rel
       Current boot image : flash:/x240-5.5.6-0.3.rel
       Backup  boot image : Not set
       Default boot config: flash:/default.cfg
       Current boot config: flash:/default.cfg (file exists)
       Backup boot config : Not set
       Autoboot status    : disabled

       vcg# dir *.rel
        14492851 -rw- May 11 2012 06:42:05  flash:/x240-5.5.6-0.3.rel
        ...

       vcg# dir vcg-2/flash:/*.rel
        14492851 -rw- May 11 2012 06:42:05  vcg-2/flash:/x240-5.5.6-0.3.rel
        ...

7. reload rolling/reboot rollingコマンドによりVCSグループを再起動します。

       vcg# reboot rolling
       The stack master will reboot immediately and boot up with the configuration file settings.
       The remaining stack members will then reboot once the master has finished re-configuring.
       Continue the rolling reboot of the stack? (y/n): y
       21:21:40 vcg VCS[1034]: Automatically rebooting stack member-1 (MAC: 0009.41fb.
       c7eb) due to Rolling reboot

起動方法は以下のとおりです。
(1) マスター（ID=1）から再起動します。
(2) スレーブ（ID=2）がマスター（ID=2）として起動します。
Note

スレーブからマスターへ遷移するとき、リンクダウンはしません。

(3) 再起動している旧マスター（ID=1）が各プロセスの起動を完了し、コンフィグを読み込んだ後に、マスター（ID=2）が再起動します。
(4) （ID=1）がマスターとして起動します。
Note

マスター（ID=1）は正常起動するまでポートをリンクアップしません。旧マスター（ID=2）も再起動中はリンクダウンするため、マスター（ID=1）がコンフィグを読み込んでから正常起動するまでの間、一時的にVCSグループの全ポートがリンクダウンしている状態になります。

マスター（ID=1）の正常起動後にポートがリンクアップして通信が可能な状態になりますが、通信が復旧するまでの時間は、ネットワーク環境と使用しているプロトコルの復旧時間に依存します。
(5) 旧マスター（ID=2）が自動的にVCSメンバーにスレーブとして追加されます。
(6) 5.5.6-0.3にバージョンアップし、VCS再運用が可能となります。

### USBオートブート機能を使用したファームウェアバージョンアップ

本製品では、USBメモリーにファームウェアイメージファイルやコンフィグファイル、および、これらのファイル名を記載した設定ファイル（autoboot.txt）を格納しておき、このUSBメモリーを装着した状態でシステムを起動することにより、ファームウェアやコンフィグファイルの更新を自動的に行う「USBオートブート機能」をサポートしています。
USBオートブート機能自体は単体構成時（非VCS構成時）のみのサポートですが、下記手順にしたがって実行することにより、VCSグループのバージョンアップに利用することも可能です。
以下ではUSBオートブート機能を使用してVCS構成の全スタックメンバーのファームウェアをバージョンアップする方法を紹介します。
なお、この方法で必要なUSBメモリーはマスターで使用する1つだけとなります。
本機能を使用してファームウェアをバージョンアップする場合は次の手順にしたがってください。ここでは説明のため、次の環境を想定します。（以下の説明では、実際のバージョンや画面とは異なる場合があります。）

- マスター（ID=1）、スレーブ（ID=2）でVCS グループを運用中
- VCSグループのホスト名は「vcg」
- 現在のファームウェアバージョンは5.5.6-0.2
- 新しいファームウェアバージョンは5.5.6-0.3
  Note

  5.5.6-0.3は説明上使用している架空のファームウェアです。5.5.6-0.2リリース時点では実在しませんのでご注意ください。

  Note

  本手順を実行する場合は、各メンバーへの物理的アクセスと、レジリエンシーリンクの接続が必要です。ファイバースタックモジュールを使用する構成でレジリエンシーリンクを使用していない場合や、いずれかのメンバーが遠隔地に設置されており物理的にアクセスできない場合、本手順は使用できません。

  Note

  USBメモリー上のファームウェアへバージョンアップするには、USB 2.0である必要があります。ご使用の際には、お客様の使用環境で事前に検証を行った上で導入してください。

[USBメモリーの準備]
USBメモリーの読み書きができるPCなどを使って下記の準備をしてください。
1. 新しいファームウェアイメージファイルをUSBメモリーのルートディレクトリーにコピーします。
2. USBオートブート機能で使用する設定ファイル（autoboot.txt）を作成します。本設定ファイルはプレインテキストファイルです。コマンドリファレンスに記載されている書式にしたがって編集してください。

       [AlliedWare Plus]
       Copy_from_external_media_enabled=yes
       Boot_Release=x240-5.5.6-0.3.rel

3. 前の手順で作成したautoboot.txtをUSBメモリーのルートディレクトリーにコピーします。
   [バージョンアップ]
4. PC上などで、新しいファームウェアイメージファイルのサイズを確認してください。Windows ならファイルの「プロパティ」や「dir」コマンド、UNIX なら「ls -l」コマンドなどで確認します。
5. show file systemsコマンドを実行して、各メンバーのフラッシュメモリー空き容量を確認します。（表示例は一例です。容量は機種によって異なります）

       vcg# show file systems

       Stack member 1:

        Size(b)  Free(b)  Type   Flags  Prefixes   S/D/V   Lcl/Ntwk  Avail
       -------------------------------------------------------------------
        920.3M   816.1M   flash     rw  flash:     static  local      Y
             -        -   system    rw  system:    virtual local      -
       ...

       Stack member 2:

        Size(b)  Free(b)  Type   Flags  Prefixes   S/D/V   Lcl/Ntwk  Avail
       -------------------------------------------------------------------
        920.3M   816.1M   flash     rw  flash:     static  local      Y
             -        -   system    rw  system:    virtual local      -
       ...

   この例では、メンバー1、2とも空き容量が816.1MByteであると確認できます。空き容量とイメージファイルのサイズを比較して、すべてのメンバーにイメージファイルを格納するのに充分な空きがあることを確認してください。
   いずれかのメンバーの空き容量が足りない場合は、deleteコマンドで不要なファイルを削除して空きを作ってください。たとえば、メンバー2 の空き容量が足りない場合は、次のようにして不要なファイルを削除します。

       vcg# dir vcg-2/flash:/*.rel
        ...
        1401740 -rw- Jan 01 2011 00:00:00  vcg-2/flash:/x240-nolonger-used.rel
        ...
       vcg# delete vcg-2/flash:/x240-nolonger-used.rel
       Deleting....................................................
       Successful operation

   ここで、コマンド中の「vcg-2/」はスレーブのファイルシステムを指定するための書式で、VCSグループのホスト名（例ではvcg）、半角ハイフン、スレーブのスタックメンバーID（例では2）、半角スラッシュをつなげたものです。「vcg-2/」は一例ですので、実際にはご使用の環境におけるホスト名とスタックメンバーID を指定してください。たとえば、VCS グループのホスト名が「november」でスレーブのスタックメンバーID が「3」のときは、「vcg-2/」の代わりに「november-3/」と指定します。なお、ホスト名を明示的に設定していない場合、VCS グループのホスト名は「awplus」となります（たとえば、「awplus-2/」などと指定します）。
   スレーブファイルシステムの指定方法については、応用編をご覧ください。
6. レジリエンシーリンクが接続されていることを確認します。
7. VCSのスレーブ側のスタックケーブルを抜きます。
8. コンソール上でautoboot enableコマンドを実行し、USBオートブート機能を有効にします。同コマンドの設定は、実行と同時にシステムファイルに保存されるため、copyコマンドやwrite fileコマンド、write memoryコマンドなどでコンフィグに保存する必要はありません。

       vcg# configure terminal
       Enter configuration commands, one per line.  End with CNTL/Z.
       vcg(config)# autoboot enable

9. 現在のコンフィグを念のためバックアップします。ここでは例としてbefore-autoboot-upgrade.cfgというファイル名でバックアップしています。

       vcg(config)# exit
       vcg# copy running-config before-autoboot-upgrade.cfg

10. USBメモリーをマスターのUSBポートに挿入します。
11. 次のコマンドを実行して、マスターを再起動します。マスターの再起動により、スレーブがマスターに昇格します。

        vcg# reload

12. 旧マスターの再起動中に、USBオートブート機能が動作していることを示す次のメッセージが表示され、その後再度旧マスターが自動的に再起動します。

        09:28:21 awplus Autoboot: autoboot.txt file detected
        awplus login:
        09:29:21 awplus Autoboot: Restoring release from usb:/x240-5.5.6-0.3.rel to flash:x240-5.5.6-0.3.rel. This may take several minutes to complete.
        09:29:21 awplus Autoboot: Please wait until the device reboots.
        09:30:21 awplus Autoboot: Release successfully restored
        09:30:21 awplus Autoboot: Autoboot restore successful, rebooting device.

13. 旧マスターの2回目の起動が完了して、ログインプロンプトが表示されたら、旧スレーブ（現マスター）の電源を切ります。これにより、旧マスターが再びマスターに昇格します。
14. 旧スレーブ側のスタックケーブルを接続し、再度電源を入れます。起動中、マスターと同期をとるためにもう一度自動的に再起動します。
15. 旧スレーブの再起動が完了したら、マスター側でshow bootコマンドを実行し、USBメモリー上のautoboot.txtファイルで指定したファームウェアイメージファイルが通常用ファームウェアとして設定されており、実際にロードされていることを確認してください。また、バージョンアップ前に使用していたファームウェアイメージファイルがバックアップ用ファームウェアとして設定されていることを確認してください。問題がなければ、以上でバージョンアップは完了です。

        vcg# show boot
        Boot configuration
        --------------------------------------------------------------------------------
        Current software   : x240-5.5.6-0.3.rel
        Current boot image : flash:/x240-5.5.6-0.3.rel
        Backup  boot image : flash:/x240-5.5.6-0.2.rel
        Default boot config: flash:/default.cfg
        Current boot config: flash:/default.cfg (file exists)
        Backup  boot config: Not set
        Autoboot status    : enabled

16. バージョンアップが完了したら、autoboot enableコマンドをno形式で実行し、USBオートブート機能を無効にしてください。
    同コマンドの設定は、実行と同時にシステムファイルに保存されるため、copyコマンドやwrite fileコマンド、write memoryコマンドなどでコンフィグに保存する必要はありません。

        vcg# configure terminal
        Enter configuration commands, one per line.  End with CNTL/Z.
        vcg(config)# no autoboot enable

### USBメモリー上のファームウェアを通常用ファームウェアに指定する

本製品では、USBメモリーに保存したファームウェアイメージファイルを、通常用ファームウェアとして直接使用することができます。スタックメンバーのフラッシュメモリー上にファームウェアを保存する必要がないので、スタックメンバーのフラッシュメモリーの空き容量を気にする必要がありません。また、USBメモリーに保存したコンフィグファイルを通常用コンフィグとして直接使用することもできます。
本機能を使用するときは、同一種類かつ同一容量のUSBメモリーがスタックメンバーの台数分必要となります。
本機能を使用してファームウェアをバージョンアップする場合は次の手順にしたがってください。ここでは説明のため、次の環境を想定します（以下の説明では、実際のバージョンや画面とは異なる場合があります）。

- マスター（ID=1）、スレーブ（ID=2）でVCS グループを運用中
- VCSグループのホスト名は「vcg」
- 現在のファームウェアバージョンは5.5.6-0.2
- 新しいファームウェアバージョンは5.5.6-0.3
  Note

  5.5.6-0.3は説明上使用している架空のファームウェアです。5.5.6-0.2リリース時点では実在しませんのでご注意ください。

1. show stackコマンドを実行し、VCS グループが正しく構築されていることを確認してください。

       vcg# show stack
       Virtual Chassis Stacking summary information

       ID  Pending ID  MAC address        Priority  Status  Role
       1   -           0015.7793.23cb     128       Ready   Active Master
       2   -           0015.77df.f59d     128       Ready   Backup Member

       Operational Status                 Normal operation
       Stack MAC address                  0000.cd37.03db (Virtual MAC)

2. 新しいファームウェアイメージファイルをUSBメモリーに保存します。新しいファームウェアイメージファイルを保存するのはマスターで使用するUSBメモリーのみでも問題ありませんが、この場合はスレーブで使用するすべてのUSBメモリーに新しいファームウェアイメージファイルを保存できる空き容量があることを確認してください。
3. USBメモリーをすべてのスタックメンバーのUSBポートに挿入します。
4. boot systemコマンドのbackupパラメーターを使って、USBメモリーが挿入されていなかったときに使用するバックアップ用ファームウェアを指定します。バックアップ用ファームウェアが設定されていないと、USBメモリーに保存されているファームウェアを通常用ファームウェアに設定できません。現在通常用ファームウェアとして指定しているファームウェアをバックアップ用ファームウェアとして指定する場合は、「no boot system」を先に実行してください。

       vcg# configure terminal
       Enter configuration commands, one per line.  End with CNTL/Z.
       vcg(config)# no boot system
       vcg(config)# boot system backup x240-5.5.6-0.2.rel
       VCS synchronizing file across the stack, please wait...
       File synchronization with stack member-2 successfully completed
       [DONE]

5. boot systemコマンドを使って、USBメモリーに保存されている新しいファームウェアを通常用ファームウェアに指定します。

       vcg(config)# boot system usb:/x240-5.5.6-0.3.rel
       VCS synchronizing file across the stack, please wait.......
       File synchronization with stack member-2 successfully completed
       [DONE]

6. show bootコマンドを実行して、通常用ファームウェアとバックアップ用ファームウェアの設定を確認します。

       vcg# show boot
       Boot configuration
       --------------------------------------------------------------------------------
       Current software   : x240-5.5.6-0.2.rel
       Current boot image : usb:/x240-5.5.6-0.3.rel
       Backup  boot image : flash:/x240-5.5.6-0.2.rel
       Default boot config: flash:/default.cfg
       Current boot config: flash:/default.cfg (file exists)
       Backup  boot config: Not set
       Autoboot status    : disabled

7. reload/rebootコマンドもしくは、reload rolling/reboot rollingコマンドによりVCSグループ全体を再起動します。
   Note

   reload rolling/reboot rollingコマンドは、メジャーバージョンアップには使用できません。

       vcg# reload
       Are you sure you want to reboot the whole stack? (y/n): y

8. 再起動完了後、show systemコマンドでファームウェアバージョンを確認し、show stackコマンドでVCS グループが正しく構築されていることを確認します。問題がなければ、以上でバージョンアップは完了です。

## ナビゲーション

VCSの高度な使い方については、第4部 応用編をご覧ください。