IPV 名前付きディスクを利用した高可用性構成の構築について

IPVでは"名前付きディスク"と呼ばれるOvDCに所属するスタンドアロン仮想ディスクを利用する事が可能です。
本機能を用いて高可用性構成を構築することが可能です。

高可用性(HighAvailavility)構成を採用するメリットは以下の通りです。

- システムやサービスが停止・中断などにより利用できなくなる状態や時間を最小限にでき、継続的に業務アプリケーションやサービスを提供できる

構築後の構成は以下図を参照下さい。

../_images/guide_sys-named-disk001.png

警告

本ガイドではIPV提供のパブリックテンプレートを用いた高可用性構成に関する構築方法について記載します。
提供テンプレート以外を用いた仮想マシンでの構成例ではありません。


前提条件

  • 名前付きディスクを作成する際には組織管理者ロール、またはディスク所有者の権限を保有していること。

構築ガイド

"名前付きディスク"を用いたデータベースシステムの高可用性(HighAvailavility)構成を構築するためのガイドラインを記載します。


構築手順


1. WindowsServer(WSFC:Windows Server Failover Cluster)構築方法

クラスター構成ノードは2台以上の仮想サーバを用意する必要があり、それらは"AD DSドメイン"に参加している必要があります。
本構築方法の対象となるIPV提供パブリックテンプレートは以下のドキュメントをご確認下さい。


警告

IPV提供テンプレートのSQLServerはスタンドアロンインスタンスとなっています。
SQLServer AlwaysOnフェールオーバークラスターは現在ご利用できません。

SQLServerインスタンスの高可用性につきましてはSQLServerチュートリアルをご参照下さい。


注釈

Windows Server 2019では「WorkGroup」での構成が可能です。
本ガイドではAD DSを用いた構成を記載します。
※ADの構築方法、対象仮想マシンのドメイン参加等はガイド内で記載しません。

本ガイド内構成ではiSCSIターゲットサーバを利用した高可用性構成について記載します。
iSCSIターゲットノードは、クォーラム用とデータ用の最低限二つの共有ストレージ(名前付きディスク)をマウントします。
本ガイド構成を以下に示します。

../_images/guide_sys-named-disk002.png

本ガイドで構築する仮想サーバおよび仮想ネットワークは以下となります。

構築サーバ一覧
仮想サーバ名 IPアドレス ディスクサイズ OS
t-dev-ad01
vNIC0:172.16.40.30/24
vNIC1:192.168.40.4/24
80GB Windows Server 2019 DataCenter
t-dev-wsfc01
vNIC0:172.16.40.31/24
vNIC1:192.168.40.3/24
80GB Windows Server 2019 DataCenter
t-dev-wsfc02
vNIC0:172.16.40.32/24
vNIC1:192.168.40.2/24
80GB Windows Server 2019 DataCenter
t-dev-wsfc03
vNIC0:172.16.40.33/24
vNIC1:192.168.40.1/24
80GB Windows Server 2019 DataCenter

仮想ネットワーク
仮想ネットワーク名 種別 IPアドレス 用途
t-dev-wsfc-172.16.40.0 OvDCネットワーク[隔離]
172.16.40.0/24
GW:172.16.40.254
フロントエンド用ネットワーク
t-dev-iscsi-192.168.40.0 vAppネットワーク
192.168.40.0/24
GW:192.168.40.254 ※仮想マシン間通信では使用しません
iSCSI用ネットワーク


1.1. 前提条件

1) 本ガイドでの操作は"Org Admin"での操作を想定しています。
IPV 名前付きディスク"ディスク所有者"権限を保有しているアカウントとは操作性が異なる可能性があることをご理解下さい。

IPVご利用開始時に標準で用意されているロール、ロールに紐づいている権限は以下を参照下さい。


2) クラスター構成を行う全てのサーバで同じバージョンの「Windows Server」で構築して下さい。
3) クラスター化された記憶域を追加する際には、クラスター構成内の全てのサーバが記憶域にアクセスできる様にして下さい。
また、ラスターを作成するために使用するアカウントは、クラスター構成に追加する全てのサーバに対する管理者権限を持つドメインユーザーである必要があります。
4) クラスター構成時にはネットワーク負荷を考慮した論理ネットワーク設計を行って下さい。
例:iSCSI接続用ネットワーク、バックアップ用ネットワーク、ハートビート用ネットワークなど。

1.2. 事前準備

パブリックテンプレートを使用しない場合には構築で使用するOSイメージファイル(ISO)をIPV環境へ事前にアップロードして利用します。
事前準備で利用する機能は以下となります。

- [ライブラリ]->[コンテンツライブラリ]->[カタログ]
- [ライブラリ]->[コンテンツライブラリ]->[メディアとその他]

プライベートカタログの作成については以下の機能チュートリアルを参照下さい。

1.3. 名前付きディスク作成

iSCSIターゲットサーバにて使用する名前付きディスクを作成します。

../_images/guide_sys-named-disk003.png

1.3.1. 名前付きディスク作成

高可用性構成

環境の準備が整いましたのでHAクラスタで使用する共有ディスク(名前付きディスク)を作成していきます。 |

  • 左部ペインメニューより[ストレージ]->[名前付きディスク] をクリックします。

  • [新規]をクリックします。
    下表の名前付きディスクの作成を行います。

No 名前 説明 ストレージポリシー IOPS ディスクのサイズ バスタイプ バスサブタイプ
1 t-dev-wsfc-quorum 共有ディスク_Quorum用 ストレージポリシー:******(VDCのデフォルト) ※環境によりストレージポリシー名は異なります。 該当なし(入力できません) 50GB
1.SCSI(標準)
2.LSI Logic SAS SCSIコントローラー
2 t-dev-wsfc-data 共有ディスク_データ用 ストレージポリシー:******(VDCのデフォルト) ※環境によりストレージポリシー名は異なります。 該当なし(入力できません) 100GB
1.SCSI(標準)
2.LSI Logic SAS SCSIコントローラー

注釈

SCSIコントローラーについてはデプロイ仮想マシンのハードディスクを参照下さい。
パブリックテンプレートでは標準で「LSI Logic SAS SCSIコントローラー」を使用しております。

  • [保存] をクリックします。

1.3.2. 名前付きディスク接続

警告

本作業は対象仮想マシンのデプロイが完了し、初回ログインが終了した後に実施して下さい。
※VMware ToolsによるゲストOSカスタマイゼーション処理等も起動するため初回ログイン前に接続は行わないで下さい。

注釈

名前付きディスクのバスタイプは仮想マシン [全般]-[ハードディスク]内の仮想ディスクバスタイプと同じになる様にして下さい。


共有ディスク(名前付きディスク)を作成した後に対象仮想マシンにディスク接続を行います。

  • 左部ペインメニューより[ストレージ]->[名前付きディスク] をクリックします。
    編集対象の名前付きディスクにチェックを入れ、上部メニュー[接続]をクリックします。
  • [名前付きディスクの接続]ダイアログが表示され仮想マシン ドロップダウンメニューから名前付きディスクを接続する仮想マシンを選択します。

  • [適用] をクリックします。
    正常に処理が完了後、リスト内対象名前付きディスクの「接続された仮想マシンの数」が増加することを確認します。
  • [vApp]内名前付きディスク接続仮想マシンをクリックします。
    [ハードウェア]->[ハードディスク]に名前付きディスクが表示されていることを確認します。
上記手順を対象共有ディスク分実施します。

名前付きディスク側での操作は以上となります。
以降はWindows Server側での操作となります。

1.4. iSCSIターゲットサーバ導入(対象仮想マシン名:t-dev-wsfc03)

iSCSIターゲットサーバに対して役割を追加します。
役割を追加する前に『名前付きディスク』の有効化を行います。

  • 仮想マシンに"administrator"アカウントにてログイン
  • [サーバ マネージャー]が起動することを確認
  • サーバマネージャー上部メニュー[ツール]->[コンピュータの管理]を選択
  • ツリーメニュー内[ストレージ]->[ディスクの管理]を選択
  • [ディスクの管理]内、下部に接続した『名前付きディスク』分の未初期化ディスクが存在することを確認
  • 対象ディスクを選択しメニューより"オンライン"を実施
  • 対象ディスクの"オンライン"化を行った後に再度ディスクを選択し"ディスクの初期化"を行います。
  • ディスクの初期化が完了した後にボリュームを選択しディスクフォーマットを実施
『名前付きディスク』の接続処理は以上で完了となります。
次に役割の追加を行います。
役割の追加はサーバマネージャーを用います。
以下の手順は他サーバの役割追加における共通手順となります。

  • 仮想マシンに"administrator"アカウントにてログイン
  • [サーバ マネージャー]が起動することを確認
  • サーバマネージャー上部メニュー[管理]->[役割と機能の追加]を選択
  • [インストールの種類]->[役割ベースまたは機能ベースのインストール]を選択し[次へ]をクリック
  • [対象サーバの選択]->[サーバプールからサーバ選択]でインストールする対象サーバが選択されていることを確認し[次へ]をクリック
  • [サーバの役割選択]->[ファイルサービスと記憶域サービス]内より[ファイルサービスおよびiSCSIサービス]->[iSCSIターゲットサーバ]にチェックをいれます
  • [ファイルサービスおよびiSCSIサービス]->[iSCSIターゲットサーバ]にチェックが入っていることを確認し[次へ]をクリック
  • [機能の選択]では何もせずに[次へ]をクリック
  • [インストールオプションの確認]にてインストール内容を確認し[インストール]をクリック
  • [インストールの進行状況]->[機能のインストール]にて"構成が必要です。(ホスト名)でインストールが正常に完了しました"と表示されることを確認

1.4.1. iSCSI仮想ディスクの作成(対象仮想マシン名:t-dev-wsfc03)

本作業にてiSCSIターゲットサーバに接続した『名前付きディスク』を他サーバと共有できる様にiSCSI仮想ディスクの作成を行います。

  • サーバマネージャー左メニューより[ファイルサービスと記憶域サービス]->[iSCSI]を選択
  • "iSCSI仮想ディスクを作成するには、新しいiSCSI仮想ディスクウィザードを開始してください。"をクリック
  • [新しいiSCSI仮想ディスクウィザード]->[[iSCSI仮想ディスクの場所を選択]にて『名前付きディスク』をフォーマットしたボリュームを選択し[次へ]をクリック
  • [iSCSI仮想ディスク名の指定]にてiSCSI仮想ディスクの名前および必要に応じて説明を設定し[次へ]をクリック
  • [iSCSI仮想ディスクのサイズを指定]にて利用するディスクサイズおよびボリューム種別を選択し[次へ]をクリック
  • [iSCSIターゲットの割り当て]にて"新しいiSCSIターゲット"を指定し[次へ]をクリック
    ※初回のみ実施します
     2回目以降にてターゲットを同一にする場合は作成済みターゲットを指定します
  • [ターゲット名の指定]にてiSCSIターゲットの名前および必要に応じて説明を設定し[次へ]をクリック
  • [アクセスサーバの指定]にてiSCSIイニシエーターを指定するため[追加]をクリック
    [イニシエーターIDの追加]にて下部の"選択した種類の値の入力"にて以下設定を入力し[OK]をクリック
    ・種類(T):IPアドレス
    ・値(V):SCSIイニシエーターサーバのIPアドレスを入力
    ※イニシエーターサーバのIPアドレスを利用台数分入力します。
  • [認証を有効にする]では何も設定せずに[次へ]をクリック
    ※CHAP認証等をご利用の場合は設定を行います
  • [設定内容の確認]にて設定項目に不備がない事を確認し[作成]をクリック
  • [結果の表示]にiSCSI仮想ディスクならびにiSCSIターゲットの作成結果が"完了"であることを確認し[閉じる]をクリック
  • サーバマネージャー->[ファイルサービスと記憶域サービス]->[iSCSI]に作成したiSCSI仮想ディスクが表示されていることを確認
以上の手順によりiSCSI仮想ディスクが作成されます。
複数のiSCSI仮想ディスクを使用する場合には上記手順をiSCSI仮想ディスク分実施します。

以上でiSCSIターゲット側の設定は完了となります。

1.4.2. iSCSIイニシエーター構築(対象仮想マシン名:t-dev-wsfc01/02)

本作業にてiSCSIターゲットサーバのiSCSI仮想ディスクをiSCSIイニシエーターサーバが利用する為の接続設定を行います。

注釈

iSCSIイニシエーターは標準で利用が可能になっています。

  • サーバマネージャー上部メニューより[ツール]->[iSCSIイニシエーター]を選択
  • [iSCSIイニシエーターのプロパティ]->[ターゲット]タブ内の"ターゲット"欄に「iSCSIターゲットサーバのIPアドレス」を入力し[クイック接続]をクリック
  • [クイック接続]ダイアログが起動し"検出されたターゲット"にiSCSIターゲットサーバが表示されたことを確認し[完了]をクリック
  • [iSCSIイニシエーターのプロパティ]->[ターゲット]タブ内の[接続]をクリック
  • [ターゲットへの接続]ダイアログにて必要なチェックを行い[OK]をクリック
    ※CHAP認証を利用している場合は[詳細設定]よりCHAP認証を有効化し認証情報の入力を行います
     [全般]タブ内"CHAPログオンを有効にする"にチェックを入れ"名前"、"ターゲットシークレット"欄にiSCSIターゲットサーバにて設定した認証情報を入力します
  • [ターゲット名の指定]にてiSCSIターゲットの名前および必要に応じて説明を設定し[次へ]をクリック
  • [アクセスサーバの指定]にてiSCSIイニシエーターを指定するため[追加]をクリック
    [イニシエーターIDの追加]にて下部の"選択した種類の値の入力"にて以下設定を入力し[OK]をクリック
    ・種類(T):IPアドレス
    ・値(V):ターゲットサーバのIPアドレスを入力
  • [認証を有効にする]では何も設定せずに[次へ]をクリック
    ※CHAP認証等をご利用の場合は設定を行います
  • サーバマネージャー上部メニュー[ツール]->[コンピュータの管理]->[ディスクの管理]へ移動
  • iSCSIターゲットサーバが提供するiSCSI仮想ディスク分のオフラインディスクが表示されていることを確認
上記手順をiSCSI仮想ディスクを使用する対象仮想マシン分実施します。

ここからはWSFCにて使用する為の共有ディスク作成を行います。

1.4.3. WSFC用共有ディスクの構築(対象仮想マシン名:t-dev-wsfc01/02)

本作業にてiSCSIターゲットサーバのiSCSI仮想ディスクをiSCSIイニシエーターサーバが利用する為の接続設定を行います。

  • 仮想マシンに"administrator"アカウントにてログイン
  • [サーバ マネージャー]が起動することを確認
  • サーバマネージャー上部メニュー[ツール]->[コンピュータの管理]を選択
  • ツリーメニュー内[ストレージ]->[ディスクの管理]を選択
  • [ディスクの管理]内、下部に接続した『iSCSIターゲットにて作成したiSCSI仮想ディスク』分の未初期化ディスクが存在することを確認
  • 対象ディスクを選択しメニューより"オンライン"を実施
  • 対象ディスクの"オンライン"化を行った後に再度ディスクを選択し"ディスクの初期化"を行います。
  • ディスクの初期化が完了した後にボリュームを選択しディスクフォーマットを実施
WSFC用共有ディスクの構築処理は以上で完了となります。
以降よりWSFC(Windows Server Failover Cluster)の構築を行います。

1.4.4. WSFC構築(対象仮想マシン名:t-dev-wsfc01/02)

本作業にてWSFCの構築を行います。
WSFC構成に必要となる共有ディスクボリュームはiSCSIターゲットサーバにて作成したiSCSI仮想ディスクを用います。

まず、対象仮想マシンにWSFC機能をインストールします。

  • 仮想マシンに"administrator"アカウントにてログイン

  • [サーバ マネージャー]が起動することを確認

  • サーバマネージャー上部メニュー[管理]->[役割と機能の追加]を選択

  • [インストールの種類]->[役割ベースまたは機能ベースのインストール]を選択し[次へ]をクリック

  • [対象サーバの選択]->[サーバプールからサーバ選択]でインストールする対象サーバが選択されていることを確認し[次へ]をクリック

  • [サーバの役割選択]では何もせずに[次へ]をクリック

  • [機能の選択]にて"Failover Clustering"にチェックを入れ、サブダイアログにて[機能の追加]をクリック
    ※サブダイアログ内"管理ツールを含める(存在する場合)"に標準でチェックされていますが不要の場合はチェックを外して下さい
  • [機能の選択]にて"Failover Clustering"にチェックがついていることを確認し[次へ]をクリック

  • [インストールオプションの確認]にてインストール内容を確認し[インストール]をクリック

  • [インストールの進行状況]->[機能のインストール]にて"構成が必要です。(ホスト名)でインストールが正常に完了しました"と表示されることを確認


以上でWSFC機能の追加が完了となります。
次にWSFCを持ちいてクラスタの構築を行います。

  • [スタート]->[Windows 管理ツール]->[フェールオーバークラスターマネージャー]をクリック
    [フェールオーバークラスタマネージャー]が起動することを確認
  • クラスタ作成の前に構成の検証を実施します
    [フェールオーバークラスタマネージャー]右側メニュー[操作]->[構成の検証]をクリック
  • [構成の検証ウィザード]が起動することを確認
    [開始する前に]にて[次へ]をクリック
  • [サーバまたはクラスターの選択]内"名前の入力"欄にWSFC構成対象の『全ての仮想マシン名をFQDN』にて入力し[次へ]をクリック
    ※iSCSIターゲットサーバは含まれません。
    入力FQDN例)t-dev-wsfc01.test.example.org
  • [テストのオプション]にて"すべてのテストを実行する"を選択し[次へ]をクリック

  • [確認]にてテスト対象となるWSFC構成対象仮想マシンが全て存在することを確認し[次へ]をクリック

  • 構成の検証が実施され実施結果が[概要]に表示されます
    エラーが表示されていないことを確認し[完了]をクリック

構成に関するエラーが表示された場合にはエラー要因を確認し対処を実施下さい。
構成検証にて問題がない場合、[クラスタの作成]を行います。

  • [フェールオーバークラスタマネージャー]右側メニュー[操作]->[クラスタの作成]をクリック

  • [開始する前に]にて[次へ]をクリック

  • [サーバの選択]にてWSFC構成対象の『全ての仮想マシン名をFQDN』にて入力し[次へ]をクリック

  • [クラスタ管理用のアクセスポイント]にて"クラスタ名"を設定し、下部のネットワークアドレス内にVIP用のIPアドレスを設定し[次へ]をクリック

  • [確認]にて構成内容を確認し、下部の"使用可能な記憶域を全てクラスタに追加する"にチェックが付いていることを確認し[次へ]をクリック
    [次へ]をクリック後、クラスタ作成処理が実行されます
  • クラスタ作成処理が完了後、[概要]が表示されます

  • [概要]にて作成されたクラスタ構成設定を確認し問題がなければ[完了]をクリック

以上でWSFC構成の作成は完了となります。
作成後は[フェールオーバークラスターマネージャー]にて[ノード]内に構成対象が全て存在しているかを確認して下さい。
構成ノードに問題がない事を確認し、[記憶域]->[ディスク]内にiSCSIターゲットサーバが提供しているiSCSI仮想ディスクが表示されることを確認して下さい。

2. Linux系サーバでの共有ディスク型可用性クラスタ構成構築方法

クラスター構成ノードは2台以上の仮想サーバを用意します。
それらを"Linux-HAクラスタスタック"を使用して高可用性クラスタ構成を実現します。


../_images/guide_sys-named-disk004.png

本手順で構築する仮想サーバは以下となります。

構築サーバ一覧
仮想サーバ名 IPアドレス ディスクサイズ OS
t-dev-ha01
vNIC0:172.16.10.20/24
vNIC1:192.168.1.20/24
80GB Ubuntu 21.04 LTS
t-dev-ha02
vNIC0:172.16.10.21/24
vNIC1:192.168.1.21/24
80GB Ubuntu 21.04 LTS


注釈

本ガイドでは外部公開リポジトリよりOSSパッケージ、ライブラリを使用しております。


2.1. 前提条件

1) 本ガイドでの操作は"Org Admin"での操作を想定しています。
"ディスク所有者"権限を保有しているアカウントとは操作性が異なる可能性があることをご理解下さい。
2) クラスター構成を行う全てのサーバで同じバージョンのOSを使用して下さい。
3) クラスター構成時にはネットワーク負荷を考慮した論理ネットワーク設計を行って下さい。
例:iSCSI接続用ネットワーク、バックアップ用ネットワーク、ハートビート用ネットワークなど。

2.2. 事前準備

構築で使用するOSイメージファイル(ISO)はIPV環境へアップロードされているものを利用します。
事前準備で利用する機能は以下となります。

- [ライブラリ]->[コンテンツライブラリ]->[カタログ]
- [ライブラリ]->[コンテンツライブラリ]->[メディアとその他]

注釈

カタログ設定については他ガイドを参照下さい。

2.3. 初期設定

2.3.1. vApp設定

初期設定では高可用性構成用vAppを作成します。
初期設定時のvApp設定範囲は下図の範囲となります。

../_images/guide_sys-named-disk005.png


2.3.2. 事前準備(vApp作成、展開用仮想マシン構築)

まず、サーバ展開用のvAppを作成します。
[コンピュート]->[vApp]内、[新規]をクリックし[新規vApp]を選択します。
下表の内容でvAppを作成します。

HAクラスタ用vApp
項目 設定内容
名前 lha-stack
説明 未記載
パワーオン チェックなし

作成したvAppにネットワークを追加します。
vAppリスト内より"lha-stack"カードの下部にある[アクション]をクリックします。
メニューリストから[追加]を選択し、[ネットワークの追加]をクリックします。
下表のネットワークを"lha-stack"に追加します。


vApp:lha-stack 追加OvDCネットワーク
項目 設定内容
タイプ 組織VDCネットワーク
選択OvDCネットワーク名 t-dev-mgmt-172.16.10.0

OvDCネットワーク追加後に新規vAppネットワークを作成します。
再度メニューリストから[追加]を選択し、[ネットワークの追加]をクリックします。
下表のvAppネットワークを"lha-stack"に追加します。

vApp:lha-stack 追加vAppネットワーク
名前 ゲートウェイCIDR 用途
t-dev-ha 192.168.1.254/24 ハートビート用ネットワーク

[コンピュート]->[vApp]内、"lha-stack"カードをクリックします。
上部メニューより[すべてのアクション]をクリックし[追加]->[仮想マシンを追加]を選択します。
[仮想マシンをlha-stackに追加]ダイアログが表示されます。
ダイアログ下部の[仮想マシンの追加]をクリックし、下表の内容で仮想マシンを作成します。

仮想マシン(t-dev-ha01)作成
項目 設定内容
名前 t-dev-ha01
説明 未記載
タイプ テンプレートから
テンプレート Ubuntu-21.0.4-SV ※tutorial-catalog
ストレージ
ストレージポリシー:******(VDCのデフォルト) ※環境によりストレージポリシー名は異なります。
コンピュート
項目なし
NIC
項目なし※別途、仮想マシン構成設定にて追加するため、空欄となります。
カスタムプロパティ
項目なし
エンドユーザー使用許諾契約書(EULA)
項目なし

[OK]をクリックすることで、仮想マシンの構築処理が実行されます。
仮想マシン展開後、[vApp]->[lha-stack]内仮想マシンに追加した仮想マシンが表示されていることを確認し仮想マシン名をクリックします。
対象仮想マシン画面へ遷移し、[ハードウェア]->[NIC]をクリックします。
[編集]をクリックし、下表のNICを追加します。

仮想マシン(t-dev-ha01):NIC設定
仮想マシンNIC No 設定ネットワークインターフェイス 接続OvDCネットワーク IPモード IPアドレス
0 LAN t-dev-mgmt-172.16.10.0 固定 - 手動 172.16.10.20
1 LAN t-dev-ha 固定 - 手動 192.168.1.20

NICを追加した後に、[ハードウェア]->[コンピュート]をクリックしメモリの増設を実施します。
デプロイ時点ではメモリが1GBしかないため、アプリケーションプロセスを起動する際にメモリ不足となります。
導入するアプリケーションに適したメモリ量を搭載するため、メモリの増設を行う必要があります。

下部に配備されている"メモリ"欄[編集]をクリックし、CPU/メモリを増設します。

仮想マシン(t-dev-ha01):コンピュート設定
仮想CPU ソケット当たりのコア数 メモリ(GB) メモリホットアド
4 1 8 チェックなし(無効)

メモリ編集後がハードディスクについても増設措置を行います。※デプロイ時10GBしかないため。
導入するアプリケーションに適したディスク量に編集を行って下さい。

[ハードウェア]->[ハードディスク]->[編集]をクリックし、接続ディスクのサイズを編集します。

仮想マシン(t-dev-ha01):ハードディスク設定
サイズ
100

NICの追加、メモリの増設およびディスク増設を行った後、上部メニューの[パワーオン]をクリックします。
仮想マシンの設定を行うため、上部メニュー[WEBコンソールを起動]をクリックします。
仮想マシンのブート処理が完了後、[ゲストプロパティの編集]内"パスワードを指定"に表示されるパスフレーズを用いてログイン処理を行います。

ログイン後、OS固定ネットワーク設定を行います。
使用しているOVA(OVF)では"cloudbase-init"による設定がなされているため、OvDC環境に沿ったネットワーク回りの再設定を実施します。
Ubuntuのネットワーク設定として「netplan」を使用して設定を行います。
※「50-cloud-init.yaml」が仮想マシン内に生成されていますがcloudbase-initがデプロイ時に使用するファイルとなります。

以下のコマンドにて仮想マシンのネットワーク設定を行います。

Linux
## ホスト名の設定
hostnamectl set-hostname {ホスト名}
## 時刻設定変更
timedatectl set-timezone Asia/Tokyo
timedatectl
#出力例
Local Time: {曜日} yyyy-mm-dd HH:MM:ss JST
Universal Time: {曜日} yyyy-mm-dd HH:MM:ss UTC
RTC Time:  {曜日} yyyy-mm-dd HH:MM:ss
Time zone: Asia/Tokyo (JST, +09:00)
System clock syncchronized: yes
NTP services: active
RTC in local TZ: no
## rootパスワードの変更
passwd root
New passwd: {新規パスワード}
Retype new password: {新規パスワード}
## ネットワーク設定
# ネットワーク設定情報確認
ip addr show
#
#出力結果
# 0: lo: ~
# 1: ens{No}: ~ ← ens{No}が仮想マシンに追加したNICのデバイス名となります。
#
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/01-netcfg.yaml
sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.org
sudo vi /etc/netplan/01-netcfg.yaml
# vi 編集内容
# This file is generated from information provided by the datasource.
## 中略
# network: {config: disabled}
network:
   ethernets:
       ens{xxx}: # デバイス名は"ip addr show"コマンドにて確認したものとなります。
           dhcp4: no
           addresses: [172.16.10.xxx/24]
           gateway4: 172.16.10.250 # 内/外境界仮想ファイアウォールがゲートウェイとなります。
           nameservers:
             addresses: [172.16.10.10] # t-mgmt-ad01がDNSとなります。
           dhcp6: no
       ens{xxx}: # デバイス名は"ip addr show"コマンドにて確認したものとなります。
           dhcp4: no
           addresses: [192.168.1.20/24]
           dhcp6: no
   version: 2
# netplan設定内容を反映
netplan apply
ip addr show

以上でOS固定ネットワーク設定が完了となります。
設定が完了した後に以下コマンドにてOvDC内ネットワーク疎通、OvDC外部の名前解決が可能になっていることを確認します。

Linux
ping 172.16.10.1
# packet lossが0であることを確認(ActiveDirectory、接続OvDCネットワークとの疎通確認)
ping 172.16.10.250
# packet lossが0であることを確認(外部接続OvDCネットワークとの疎通確認)
ping www.google.co.jp
# packet lossが0であることを確認(外部DNSへの名前解決確認)

注釈

ActiveDirectoryにて事前に内部DNSを構築して下さい。
DNSフォワーダー先は内/外境界ファイアウォールのDNSフォワーダー(リゾルバ)機能を利用します。。
※DNSクエリ転送の許可が標準ではされていないため、DNSクエリ転送を許可して下さい。


注釈

パッケージ導入およびアプリケーション設定については本ガイドでは明記しません。

冗長用の2号機は1号機作成後に仮想マシンコピーを用いて構築します。
仮想マシンのコピーについては他ガイドを参照下さい。

パッケージ導入完了後に共有ディスクを用いた高可用性構成用のディスク生成を行います。

2.4. 名前付きディスク作成

2.4.1. 名前付きディスク作成

高可用性構成環境の準備が整いましたのでLinux HAクラスタで使用する共有ディスク(名前付きディスク)を作成していきます。

  • 左部ペインメニューより[ストレージ]->[名前付きディスク] をクリックします。

  • [新規]をクリックします。
    下表の名前付きディスクの作成を行います。

No 名前 説明 ストレージポリシー IOPS ディスクのサイズ バスタイプ バスサブタイプ
1 t-dev-lha01 共有ディスクテスト用 ストレージポリシー:******(VDCのデフォルト) ※環境によりストレージポリシー名は異なります。 該当なし(入力できません) 100GB
1.SCSI(標準)
2.準仮想化 SCSIコントローラー
2 t-dev-lha02 共有ディスクテスト用 ストレージポリシー:******(VDCのデフォルト) ※環境によりストレージポリシー名は異なります。 該当なし(入力できません) 100GB
1.SCSI(標準)
2.準仮想化 SCSIコントローラー

  • [保存] をクリックします。

注釈

名前付きディスクのバスタイプは仮想マシン [全般]-[ハードディスク]内の仮想ディスクバスタイプと同じになる様にして下さい。


2.4.2. 名前付きディスク接続

高可用性構成で使用する共有ディスク(名前付きディスク)を作成した後に対象仮想マシンにディスク接続を行います。

  • 左部ペインメニューより[ストレージ]->[名前付きディスク] をクリックします。
    編集対象の名前付きディスクにチェックを入れ、上部メニュー[接続]をクリックします。
  • [名前付きディスクの接続]ダイアログが表示され仮想マシン ドロップダウンメニューから名前付きディスクを接続する仮想マシンを選択します。

  • [適用] をクリックします。
    正常に処理が完了後、リスト内対象名前付きディスクの「接続された仮想マシンの数」が増加することを確認します。
  • [vApp]->[lha-stack]内名前付きディスク接続仮想マシンをクリックします。
    [ハードウェア]->[ハードディスク]に名前付きディスクが表示されていることを確認します。
上記手順を対象仮想マシン分実施します。
名前付きディスク側での操作は以上となります。
以降は仮想マシン側にて名前付きディスクのマウント処理を行います。

2.5. 名前付きディスクマウント処理(Linux)

名前付きディスクを追加した後の仮想マシンOS側作業について記載します。
ここではLinux仮想マシンに対しての処理手順を記載していきます。

../_images/guide_sys-named-disk006.png

2.5.1. 名前付きディスク接続確認

仮想マシンの設定を行うため、上部メニュー[WEBコンソールを起動]をクリックします。
仮想マシンのブート処理が完了後、[ゲストプロパティの編集]内"パスワードを指定"に表示されるパスフレーズを用いてログイン処理を行います。

以下コマンドにて名前付きディスクが接続されていることを確認します。

Linux
# パーティションテーブル一覧表示する
fdisk -l
#出力例
Disk /dev/sda: xxx GiB ~ 中略 ~
## 追加ディスクが表示されることを確認して下さい
Disk /dev/sd{x}: xxx GiB ~ 中略 ~

fdiskコマンドを使用して、領域を作成します。
前項で確認した増設ディスクのパーティション (/dev/sd{x})を指定してfdiskコマンドを実行します。
※下記例では「/dev/sdb」に対してパーティション設定を行います。

Linux
# /dev/sdbに対しパーティションを作成する
fdisk /dev/sdb
#出力例
Welcome to fdisk (util-linux 2.36.1). ~ 中略 ~
## "n"を入力します
Command (m for help): n
## "p"を入力します
Partition type
 p   primary (0 primary, 0 extended, 4 free)
 e   extended (container for logical partitions)
Select (default p): p
## "1"を入力します
Partition number (1-4, default 1): 1
## 始点・終点シリンダを指定します (default 値を入力します)
First sector (2048-209715199, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199): 209715199
Created a new partition 1 of type 'Linux' and of size 100 GiB.
## "p"を入力しデバイス確認を行います
Command (m for help): p
Device     Boot Start       End   Sectors  Size Id Type
/dev/sdb1        2048 209715199 209713152  100G 83 Linux
## "w"を入力しパーティションテーブルをディスクに書き込みます(本コマンドにて自動終了します)
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
## パーティション情報を更新します
partprobe

増設ディスクのパーティション (/dev/sd{x})をそのまま使用する場合にはファイルシステムとしてフォーマット処理を実行します。
後述のDRBDをご利用する場合には本処理はDRBD導入後に実施します。

Linux
## パーティションのフォーマット処理を行います
mkfs -t ext4 /dev/sdb1
~ 中略 ~
Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done
## マウント用のディレクトリを作成します
mkdir /add_share
## 追加したディスク(/dev/sdb1)のUUIDを確認します
blkid
~ 中略 ~
/dev/sdb1: UUID="a8fe6156-74b8-407e-b774-9ddaf1a7548d" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="8852fae9-01"
## 「/etc/fstab」を編集し自動マウント設定を行ないます(再起動した場合も自動的にマウントするようになります)
vi /etc/fstab
~ 中略 ~
### 以下を最終行に追加
UUID=a8fe6156-74b8-407e-b774-9ddaf1a7548d   /add_share   ext4  defaults 1 2
## ディレクトリへマウントを行います
mount /dev/sdb1 /add_share
## 以下コマンドにてマウントしたディスクが認識されていることを確認します
df -h
~ 中略 ~
/dev/sdb1        98G   61M   93G   1% /add_share

増設ディスクが正しくマウントされていることが確認されたのちに高可用性パッケージ導入、設定を実施下さい。
本手順を高可用性構成を組むLinuxサーバ2台に対して行います。

2.6. 仮想マシンへの高可用性パッケージ導入、設定

名前付きディスクの接続処理まで行った後にLinux高可用性パッケージの導入を行います。
本ガイドでは、Linux高可用性構成ツールとして、"Linux-HAクラスタスタック"を使用し高可用性を実現します。

../_images/guide_sys-named-disk007.png

Linux-HAクラスタスタックは「DRBD」、「Pacemaker」、「Corosync(旧Heartbeat)」という3つのOSS(Open Source Software)を組み合わせて構成されます。
各構成要素にてストレージ冗長(ネットワークデータ同期)を提供し、リアルタイムのクラスタノード監視およびアプリケーションリソース監視を実現します。

本手順ではPacemakerおよびCorosync構成ツール「PCS( Pacemaker/Corosync Configuration System)」を導入し、管理用GUIツールも導入します。
Linux-HAクラスタスタック構成要素が提供する機能を下表に示します。

注釈

本手順の構成を応用することでLinux版SQL Serverを導入する際のフェールオーバークラスタ構成を組むことが可能です。
Linux-HAクラスタスタック主要構成要素
No 構成名 機能概要
1 DRBD ネットワークを通じてハードディスク(ブロックデバイス)をリアルタイムに複製(同時複製)する機能を提供(多ノード対応可能:最大32ノード)
2 Pacemaker クラスタ構成におけるリソース制御機能(サービス、IPアドレス、データへのアクセス...etc※CRM(Cluster Resource Management))を提供
3 Corosync クラスタ構成におけるクラスタ制御機能を提供(多ノード対応:推奨最大16ノード/理論最大32ノード※制御対象監視リソースにより変動します)

なお、IPVでは共有ディスク方式はとることができません。
その為、Linux HAクラスタスタック シェアードナッシング方式(データミラー)にて高可用性構成を実現します。
以下のコマンドにて、Linux HAクラスタスタック導入の事前設定、およびLinux HAクラスタスタック設定を行います。

Linux
# パッケージの最新化を行います。
sudo apt update -y
sudo apt upgrade -y

# PacemakerおよびCorosyncパッケージ(PCS)を導入します。
sudo apt-get install pacemaker pcs fence-agents resource-agents
# パッケージ導入時に自動作成されたユーザー(hacluster)のパスワードを設定します。
sudo passwd hacluster
# PacemakerおよびCorosyncパッケージ(PCS)サービスの自動起動設定を行います。
sudo systemctl enable pcsd
sudo systemctl enable pacemaker

パッケージ導入は可用性構成を組む仮想マシン全てで行います。
次にDRDBパッケージの導入を行います。

Linux
# 事前に/etc/hostsへHA用セグメントを追加します。
vi /etc/hosts
 ~ 中略 ~
192.168.1.20   node1   t-dev-ha01.local
192.168.1.21   node2   t-dev-ha02.local

### 公開鍵認証設定
# DRDBにて使用する公開鍵の作成と鍵交換処理を行います。※本作業は1台のみで実施
# 「ssh-keygen」の設定はパスフレーズ等なしで問題ありません。
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx root@ubuntuguest
The keys randomart image is:
+--[ RSA 3072]----+
|==X*+*=.=      .o|
|           o   ..|
|          =    ..|
|         = =  o. |
|        S B . .+ |
|           o o  o|
|         . .. .E |
|          =o . . |
|         .o+o .  |
|                 |
|                 |
+----[SHA256]-----+

# 生成ファイルのアクセス権を設定します。
chmod 700 .ssh
chmod 600 .ssh/id_rsa
chmod 600 .ssh/id_rsa.pub
chmod 600 .ssh/authorized_keys
### 公開鍵認証設定
# 事前準備としてssh設定の編集を行います。
vi /etc/ssh/sshd_config
## 最新のLinux SSH環境では標準で以下構文が無効化されています。
## その為、以下構文を有効化します。
PasswordAuthentication no ## この構文を「yes」にします。
PasswordAuthentication yes
# PermitRootLogin prohibit-password
PermitRootLogin yes # 追加

# 公開鍵のコピー処理を実施します。
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.xxx

### DRBD導入
## レポジトリ取得および情報の更新およびパッケージ導入を行います。
# リポジトリ情報の取得を行います。
add-apt-repository ppa:linbit/linbit-drbd9-stack
# ファイル内リポジトリ情報を編集します。
vi /etc/apt/sources.list.d/linbit-ubuntu-linbit-drbd9-stack-hirsute.list
deb http://ppa.launchpad.net/linbit/linbit-drbd9-stack/ubuntu hirsute main ## このパラメータを下記に編集します。
deb https://ppa.launchpadcontent.net/linbit/linbit-drbd9-stack/ubuntu focal main
#deb-src http://ppa.launchpad.net/linbit/linbit-drbd9-stack/ubuntu hirsute main
# リポジトリ情報の更新をし、パッケージ導入を行います。
apt-get update
apt install -y drbd-utils drbd-dkms

仮想マシンコピーにて2台目仮想マシンを構築する場合は本工程完了後に実施して下さい。
仮想マシンコピー後は本手順内ネットワーク設定にて実施したhost名の変更およびネットワーク設定変更ならびに/etc/hostsの更新を実施して下さい。
また、共有ディスクの接続・パスフレーズなし認証設定を行うことで後工程がスムーズに行えます。

注釈

DRBDパッケージ導入後に2台目の高可用性ノード作成用途で仮想マシンのコピー処理を行う場合は"名前付きディスク"を一度分離して下さい。
"名前付きディスク"がアタッチされた状態ではコピー処理が行えません。

2.6.1. DRBD設定

DRBD導入後にDRBDの設定を行います。
DRBDはLinuxカーネル内で動作し、DRBDを制御するためのユーティリティコマンド(「drbdadm」「drbdsetup」等)が用意されています。
ユーティリティコマンドは「drbdadm」より起動します。

DRBDにて使用できるブロックデバイスは以下があります。

- ハードドライブのパーティション(または物理ハードドライブ全体)
- ソフトウェアRAIDデバイス
- LVM論理ボリュームまたはLinuxデバイスマッパインフラストラクチャによって構成されるその他のブロックデバイス
- システム内のその他のブロックデバイス

IPVにて提供している「名前付きディスク」をDRBDにて管理・制御するためのブロックデバイスとして活用する手順を記載します。

Linux
### DRBD設定
# DRBDの設定では「drbdadm」が使用するリソース構成パラメータファイルを作成します。
# 本工程は全仮想マシンで行います。
vi /etc/drbd.d/r0.res
# リソース構成を定義します。
# on {hostname}セクションは/etc/hostsに定義した名前であることを注意して下さい。
resource r0 {
    device     /dev/drbd0;
    disk       /dev/sdb1;
    meta-disk  internal;
  on t-dev-ha01.local {
    address    192.168.1.20:7789;
    node-id    1;
  }
  on t-dev-ha01.local {
    address    192.168.1.21:7789;
    node-id    2;
  }
}
# DRBDメタデータの初期化を実施します。
# ※本処理は実行時にDRBD構成を組む全ての仮想マシンで実施します。
drbdadm create-md {リソース名} # リソース構成ファイル内にて定義した名称を指定します。今回は「r0」となります。例:"resource {リソース名}"
#出力例
initializing activity log
initializing bitmap ( 3200 KB ) to all zero
Writing meta data ...
New drbd meta data block successfully created.
# リソースを起動します。
# 本処理はDRBD構成を組む全ての仮想マシンで実施します。
drbdadm up {リソース名}
# リソース確認を行います。
# デバイス状態の確認を行います。
drbdadm status {リソース名}
#出力例(Primary)
r0 role:Primary
  disk:UpToDate
  {2台目仮想マシンホスト名} connection:Connecting
#出力例(Secondary)
r0 role:Secondary
  disk:Inconsistent
  {primary 仮想マシンホスト名} connection:Connecting
# リソースを確認します。
cat /proc/drbd
#出力例
version: 9.1.7 (api:2/proto:110-121)
GIT-hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx build by root@{host名}, yyyy-mm-dd HH:MM:ss
Transports (api:18): tcp (9.1.7)
# デバイスの初回同期を実施します。
# 本作業はPrimaryとなる仮想マシンでのみ実施します。
drbdadm primary --force {リソース名}
# デバイス同期確認を行います。
drbdadm status {リソース名}
#出力例(Primary)
r0 role:Primary
  disk:UpToDate
  {2台目仮想マシンホスト名} connection:Connecting
#出力例(Secondary)
r0 role:Secondary
  disk:Inconsistent
  {primary 仮想マシンホスト名} role:Primary
     replication:SyncTarget peer-disk:UpToDate done:10.61

DRBDの初期設定が完了した後にPrimary仮想マシンにてファイルシステムの作成を行います。
本作業は基本Primaryのみで実施します。

Linux
### DRBD用ファイルシステム設定
# 本手順では「ext4」にてファイルシステムを構築します。
# LVMでの作成も可能です。
mkfs.ext4 /dev/drbd0
#出力例
Creating filesystem with ~中略~
Filesystem UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Superblock backups stored on blocks: ~中略~
Allocating group tables: done
Writing inode tables: done
Creating journal ( xxxxxx blocks ): done
Writing superblocks and filesystem accounting information: done
# 同期確認
mkdir /mnt/drbd # 同期確認用のマウントポイントを作成します。※本作業は全仮想マシンで行います。
mount /dev/drbd0 /mnt/drbd
df /mnt/drbd
#出力例
Filesystem   1K-blocks   Used    Available   Use%  Mounted on
/dev/drbd0   xxxxxxxxx   xxxxx   xxxxxxxx     x%    /mnt/drbd
# 同期テスト
echo test > /mnt/drbd/test.txt
umount /dev/drbd0
drbdadm secondary {リソース名}
# secondary側同期確認作業
drbdadm primary {リソース名}
mount /dev/drbd0 /mnt/drbd
ls /mnt/drbd
#出力例
lost+found   test.txt # Primary側で作成したtest.txtが表示されることを確認します。
# DRBDサービスの自動起動設定
systemctl enable drbd

以上でDRBD設定は完了となります。
次にPacemaker/CorosyncにてDRBDデバイス ファイルシステムの管理を行います。

2.6.2. Pacemaker/Corosync設定

DRBD設定が完了しましたのでPacemaker/Corosyncを用いたLinuxクラスタ構成を構築していきます。
DRBDリソースの昇格・降格はDRBD側にて制御されます。
その為、Pacemaker/CorosyncではLinuxカーネル内で動作し、DRBDを制御するためのユーティリティコマンド(「drbdadm」「drbdsetup」等)が用意されています。
ユーティリティコマンドは「drbdadm」より起動します。


Linux
# PacemakerおよびCorosyncパッケージ(PCS)サービスの起動を行います。
sudo systemctl start pcsd
# Linuxクラスタ構成を定義します。
# 本処理はクラスタを構成するすべての仮想マシンにて実施します。
# ※pcsのバージョンが低い場合は"pcs cluster auth {host#1別名} {host#2別名}"となります。
pcs host auth {host#1別名} {host#2別名}
#出力例
username: hacluster # Pacemaker/Corosync導入時に自動生成されるユーザ
password: xxxxxxxx
~中略~
{host#1別名}: Authorized
{host#2別名}: Authorized
# クラスタセットアップ処理を実施します。
pcs cluster setup hacluster {host#1別名} {host#2別名} --force
#出力例
No Address specified for host '{host#1別名}', using '{host#1別名}'
No Address specified for host '{host#2別名}', using '{host#2別名}'
~中略~
Cluster has been successfully set up.
# クラスタを構成するすべての仮想マシンにて"pacemaker"を起動します。
systemctl start pacemaker

ここまでの作業にてPacemaker/Corosyncの初期設定が完了となります。
以降の処理にて初期設定を変更しDRBDリソースを監視する様に設定を更新します。
DRBDリソースを定義するには「pcs」コマンドを用いて直接編集する方法と設定ファイルを書き出し編集していく方法があります。
本手順では設定ファイルを書き出し編集していきます。

Linux
### pcs設定編集
## pcsコンフィグ書き出し
# PacemakerおよびCorosyncパッケージ(PCS)サービスの現行Configの確認を行います。
pcs config
# 現行Configの書き出しを行います。
pcs cluster cib {ファイル名}
## pcsリソース設定
# 仮想IP設定(リソース名:drbd_vip)
pcs -f {ファイル名} resource create drbd_vip ocf:heartbeat:IPaddr2 ip={仮想IPアドレス(xxx.xxx.xxx.xxx)} cidr_netmask={ネットマスク(xx)} nic="{ネットワークアダプタ(例:ens224)}" op monitor interval={インターバル期間(例:10s)}
# DRBDデバイス設定(リソース名:fs_drbd)
# ※DRBDリソースの昇格/降格はDRBD制御にて行う為、pcs制御のプロモーション制御は行いません。
pcs -f {ファイル名} resource create drbd_vip ocf:heartbeat:Filesystem device={DRBDデバイス(/dev/drbdx)} directory={マウントポイント(/mnt/drbd)} fstype={FSタイプ(ext4)} \
op start timeout={タイムアウト期間(例:60s)} on-fail={失敗した場合に実行する動作(例:restart 設定可能値:ignore/block/stop/restart/fence/standby)}
op stop timeout={タイムアウト期間(例:60s)} on-fail={失敗した場合に実行する動作(例:block 設定可能値:ignore/block/stop/restart/fence/standby)}
op monitor interval={インターバル期間(例:10s)} timeout={タイムアウト期間(例:60s)} on-fail={失敗した場合に実行する動作(例:restart 設定可能値:ignore/block/stop/restart/fence/standby)}
# リソースグループ化(グループ名:res_group)
pcs -f {ファイル名} resource group add res_group drbd_vip fs_drbd
## pcs設定の読込
pcs cluster cib-push {ファイル名}

以上でDRBDリソースのPacemaker/Corosync制御が完了となります。
なお、DRBDデバイスを手動で昇格/降格した場合には自動プロモーションが解除されます。
DRBDが再起動された場合に自動プロモーションが適用となります。

pcs設定における監視間隔、タイムアウト間隔の設定値は以下となります。


No 設定値 概要
1 s/sec
2 ms/msec ミリ秒
3 us/usec マイクロ秒
4 m/min
5 h/hr