acch.spectrum_scale
重要: 残念ながら、このプロジェクトは元の作成者によってもはや積極的にメンテナンスされていません。コードは「公式」IBM/ibm-spectrum-scale-install-infraプロジェクトに統合されており、今後のすべての開発はそこで行われます。この(元の)プロジェクトはもはや更新やサポートを受けないかもしれませんが、コーディングベースは引き続きアクセス可能であり、開発を続けたい人にとって利用可能です。
IBM Spectrum Scale(GPFS)Ansible Role
IBM Spectrum Scale(GPFS)をインストールして構成するための非常にカスタマイズ可能なAnsibleロール
特徴
- LinuxノードにSpectrum Scaleパッケージをインストール
- オプションで、チェックサムを比較してパッケージの整合性を確認
- デーモンが停止している場合、(オフライン)アップグレードを実施
- コンパイル、または事前コンパイルされたLinuxカーネル拡張をインストール
- SSH公開鍵認証を構成
- 新しいクラスタを作成、または既存のクラスタを拡張
- ネットワーク共有ディスク(NSD)を構成
- 新しいファイルシステムを作成、または既存のファイルシステムを拡張
- ノードクラスを構成
- ノードクラスに基づいて構成パラメータを定義
以下のインストール方法が利用可能です:
- (既存の)YUMリポジトリからインストール
- リモートインストールパッケージからインストール(Ansible管理ノードでアクセス可能)
- ローカルインストールパッケージからインストール(Ansible制御マシンでアクセス可能)
今後の計画:
- CESパッケージをインストール
- GUIおよびzimonパッケージをインストール
インストール
$ ansible-galaxy install acch.spectrum_scale
要件
公開リポジトリがないため、IBMのウェブサイトからSpectrum Scale(GPFS)パッケージをダウンロードする必要があります。 https://www.ibm.com/support/fixcentral にアクセスし、「IBM Spectrum Scale(ソフトウェア定義ストレージ)」を検索してください。
IBM Spectrum Scale開発者版
サブスクリプションがない場合は、IBM Spectrum Scale開発者版をダウンロードできます:
- IBM Spectrum Scaleデータ管理版のすべての機能を提供しますが、クラスタごとに12 TBに制限されています。
- Spectrum Scale開発者版に対するIBMのサポートはありません。また、生産環境での使用は禁止されています。
- 開発者版には、https://www.ibm.com/us-en/marketplace/scale-out-file-and-object-storage からアクセスできます。
ローカルリポジトリ
ウェブサーバーにローカルSpectrum Scaleリポジトリを作成するには:
cd /your/webserver/folder
# インストールパッケージをダウンロードします。直接リンクを取得するか、手動でコピーします...
wget <Spectrum Scaleインストールパッケージ>
sh ./Spectrum_Scale_Data_Management-5.0.X.X-x86_64-Linux-install --dir ./SpectrumScaleRpms/5.0.X.X/ --silent
cd SpectrumScaleRpms/5.0.X.X/
yum -y install createrepo
createrepo .
ロール変数
デフォルトの変数はdefaults/main.yml
に定義されています。そのファイルには詳細なドキュメントもあります。デフォルトを上書きするために、インベントリで独自のホスト変数を定義できます。
変数scale_version
の定義は必須です。さらに、以下の変数のうちのいずれかを定義することで、インストール方法を構成する必要があります:
scale_install_repository_url
scale_install_remotepkg_path
(Ansible管理ノードでアクセス可能)scale_install_localpkg_path
(Ansible制御マシンでアクセス可能)
クラスタメンバーシップ
プレイに含まれるすべてのホストは、同じクラスタ内のノードとして構成されます。既存のクラスタにホストを追加したい場合は、その既存のクラスタから少なくとも1つのノードをプレイに追加してください。
複数のプレイを実行して複数のクラスタを作成することができます。
例プレイブック
ノードにSpectrum Scaleをインストールするための最もシンプルなプレイブック:
---
- hosts: scale01.example.com
vars:
- scale_version: 4.2.3.4
- scale_install_localpkg_path: /path/to/Spectrum_Scale_Standard-4.2.3.4-x86_64-Linux-install
roles:
- acch.spectrum_scale
これにより、すべての必要なパッケージがインストールされ、単一ノードのSpectrum Scaleクラスタが作成されます。
実際には、複数のノードにSpectrum Scaleをインストールし、高可用性を達成するためにノードの役割を考慮する必要があります。クラスタは現在のプレイに含まれるすべてのホストで構成されます:
# hosts:
[cluster01]
scale01 scale_cluster_quorum=true scale_cluster_manager=true
scale02 scale_cluster_quorum=true scale_cluster_manager=true
scale03 scale_cluster_quorum=true scale_cluster_manager=false
scale04 scale_cluster_quorum=false scale_cluster_manager=false
scale05 scale_cluster_quorum=false scale_cluster_manager=false
# playbook.yml:
---
- hosts: cluster01
vars:
- scale_version: 4.2.3.4
- scale_install_repository_url: http://infraserv/gpfs_rpms/
- scale_cluster_clustername: cluster01.example.com
roles:
- acch.spectrum_scale
詳細な変数や構成オプションについてはdefaults/main.yml
を参照してください。
scale_cluster_quorum
やscale_cluster_manager
などのノード役割の定義はオプションです。クォーラムノードを指定しない場合、インベントリの最初の7つのホストが自動的にクォーラム役割を割り当てられます。
上記の例は、必要なパッケージをインストールし、既存のリモートファイルシステムをマウントするために使用できる機能的なSpectrum Scaleクラスタを作成します。新しいクラスタでローカルファイルシステムを作成するには、追加の情報を提供する必要があります。その目的にはhost_vars
インベントリファイルを使用することが推奨されます:
# host_vars/scale01:
---
scale_storage:
- filesystem: gpfs01
blockSize: 4M
defaultMetadataReplicas: 2
defaultDataReplicas: 2
numNodes: 16
automaticMountOption: true
defaultMountPoint: /mnt/gpfs01
disks:
- device: /dev/sdb
nsd: nsd_1
servers: scale01
failureGroup: 10
usage: metadataOnly
pool: system
- device: /dev/sdc
nsd: nsd_2
servers: scale01
failureGroup: 10
usage: dataOnly
pool: data
# host_vars/scale02:
---
scale_storage:
- filesystem: gpfs01
disks:
- device: /dev/sdb
nsd: nsd_3
servers: scale02
failureGroup: 20
usage: metadataOnly
pool: system
- device: /dev/sdc
nsd: nsd_4
servers: scale02
failureGroup: 20
usage: dataOnly
pool: data
上記のストレージパラメータの説明についてはman mmchfs
およびman mmchnsd
を参照してください。
filesystem
名は必須であり、各ファイルシステムのdisks
に対してdevice
変数も必須です。他のファイルシステムやディスクのパラメータはオプションです。したがって、最小のファイルシステム構成は次のようになります:
# host_vars/scale01:
---
scale_storage:
- filesystem: gpfs01
disks:
- device: /dev/sdb
- device: /dev/sdc
# host_vars/scale02:
---
scale_storage:
- filesystem: gpfs01
disks:
- device: /dev/sdb
- device: /dev/sdc
ファイルシステムのパラメータは、プレイ内の任意のホストの変数として定義できます。ファイルシステムパラメータを定義するホストは重要ではありません。ディスクパラメータの場合、servers
変数を省略した場合のみホストが関連します。servers
変数を省略した場合、そのディスクに対して定義されているホストが自動的に(NSD)サーバーとしてみなされます。
重要:
scale_storage
は、host_vars
インベントリファイルを使用して個々のホストに対して必ず定義する必要があります。ディスクパラメータをgroup_vars
インベントリファイルまたはプレイブック内のインラインvars:
を使用して定義しないでください。そうすると、それらはグループ/プレイ内のすべてのホストに適用されてしまい、同じディスクを複数回定義することになります...
さらに、Spectrum Scaleノードクラスは、scale_nodeclass
変数を定義することで、ノードごとに定義できます:
# host_vars/scale01:
---
scale_nodeclass:
- classA
- classB
# host_vars/scale02:
---
scale_nodeclass:
- classA
- classC
これらのノードクラスは、Spectrum Scaleの構成パラメータを定義するためにも使用できます。その目的にはgroup_vars
インベントリファイルを使用することが推奨されます:
# group_vars/all:
---
scale_config:
- nodeclass: classA
params:
- pagepool: 16G
- autoload: no
- ignorePrefetchLUNCount: yes
利用可能な構成パラメータの一覧についてはman mmchconfig
を参照してください。
構成パラメータはプレイ内の任意のホストの変数として定義でき、構成パラメータを定義するホストは重要ではありません。
制限事項
このロールは(現在)新しいクラスタの作成や既存のクラスタの拡張に使用できます。同様に、新しいファイルシステムを作成または拡張できます。ただし、このロールは既存のノード、ディスク、ファイルシステム、またはノードクラスを削除することはできません—意図的に!これは、ディスクのファイルシステムプールを変更するために、ディスクをファイルシステムから削除して再追加する必要があるためであり、これはこのロールの範囲外です。
さらに、オンラインアップグレードは現在このロールの範囲外です。Spectrum Scaleは(ノードを1つずつ停止することで)ロールオンライアップグレードをサポートしていますが、これには慎重な計画とモニタリングが必要であり、予期しない問題が発生した場合は手動での介入が必要になることがあります。
トラブルシューティング
このロールは、プレイの最初のホストの/var/tmp
に構成ファイルを保存します。これらの構成ファイルは、前回の実行以降に定義が変更されたかどうかを確認するために保管され、特定のSpectrum Scaleコマンドを再度実行する必要があるかどうかを判断します。問題が発生した場合は、単に/var/tmp
からこれらの構成ファイルを削除することでキャッシュをクリアできます—これにより、次回の実行時にすべての定義が再適用されます。ただし、次回の実行は、不要なSpectrum Scaleコマンドを再実行する可能性があるため、予想以上に時間がかかるかもしれません。これは自動的にキャッシュを再生成します。
質問やバグの報告、機能のリクエストについては問題追跡システムを使用してください。
著作権とライセンス
著作権 2017 Achim Christ, MITライセンスの下でリリースされています(LICENSE)