2 Ceph Storage for Oracle Linuxのインストールまたはアップグレード
警告:
Oracle Linux 7は現在延長サポート中です。詳細は、Oracle Linux拡張サポートおよびOracleオープン・ソース・サポート・ポリシーを参照してください。
できるだけ早くアプリケーションとデータをOracle Linux 8またはOracle Linux 9に移行してください。
この章では、リポジトリでCeph Storage for Oracle Linuxパッケージをインストールできるようにする方法、これらのパッケージのインストールを実行する方法、およびアップグレードを実行する方法について説明します。
ハードウェアおよびネットワークの要件
Ceph Storage for Oracle Linuxでは特定のハードウェアは必要ありませんが、Ceph操作によっては、CPUとメモリーが集中的に消費されます。Oracle x86サーバーのX6およびX7ラインは、Cephノードのホストに適しています。Oracle x86サーバーの詳細は、次を参照してください。
https://www.oracle.com/servers/x86/index.html
最小ノード構成は次のようになります。
-
4 CPUコア
-
4GB RAM
-
2 x 1GBイーサネットNIC
-
オブジェクト・データ用の1 TBストレージ
デプロイメントのニーズによっては、フットプリントがより大きいノードが必要になる場合があります。その他の考慮事項は、Cephアップストリームのドキュメントを参照してください。
オペレーティング・システムの要件
Ceph Storage for Oracle Linuxリリース3.0は、Unbreakable Enterprise Kernelリリース5 (UEK R5)が実行されているOracle Linux 7 (x86_64)で使用できます。少なくともOracle Linux 7.5が必要です。
Ceph Storage for Oracle Linuxパッケージへのアクセスの有効化
ceph-deploy
パッケージは、ol7_ceph30
リポジトリのOracle Linux yumサーバー、またはol7_x86_64_ceph30
チャネルのUnbreakable Linux Network (ULN)で使用できます。ただし、他のリポジトリおよびチャネルに対する依存関係もあるため、これらはCeph Storage Clusterに含まれる各システムで有効にする必要があります。
Oracle Linux yumサーバーを使用する場合は、次のリポジトリを有効にする必要があります。
-
ol7_ceph30
-
ol7_addons
-
ol7_latest
-
ol7_optional_latest
-
ol7_UEKR5
ULNを使用している場合は、次のチャネルを有効にする必要があります。
-
ol7_x86_64_ceph30
-
ol7_x86_64_addons
-
ol7_x86_64_latest
-
ol7_x86_64_optional_latest
-
ol7_x86_64_UEKR5
ULNを使用したリポジトリの有効化
ULNを使用するように登録した場合は、ULN Webインタフェースを使用して、システムで適切なチャネルをサブスクライブします。
-
ULNユーザー名とパスワードを使用してhttps://linux.oracle.comにログインします。
-
「システム」タブの登録されたマシンのリストで、システムの名前が付いているリンクをクリックします。
-
「システム詳細」ページで、「サブスクリプションの管理」をクリックします。
-
「システム・サマリー」ページで、利用できるチャネルのリストから必要なチャネルを選択し、右矢印をクリックしてサブスクライブ済チャネルのリストに移動します。
ol7_x86_64_ceph30
、ol7_x86_64_addons
、ol7_x86_64_latest
、ol7_x86_64_optional_latest
およびol7_x86_64_UEKR5
チャネルをシステムでサブスクライブします。 -
「サブスクリプションの保存」をクリックします。
Oracle Linux Yum Serverによるリポジトリの有効化
Oracle Linux yumサーバーで必要なリポジトリを有効にするには、システムが最新であることと、oraclelinux-release-el7
パッケージをインストールし、/usr/bin/ol_yum_configure.sh
スクリプトを実行して、モジュール形式のyumリポジトリ構成を使用するように移行したことを確認します。
# yum install oraclelinux-release-el7 # /usr/bin/ol_yum_configure.sh
oracle-ceph-release-el7
リリース・パッケージをインストールして、適切なyumリポジトリ構成をインストールします。
# yum install oracle-ceph-release-el7
次のリポジトリを有効にします。
-
ol7_ceph30
-
ol7_addons
-
ol7_latest
-
ol7_optional_latest
-
ol7_UEKR5
yum-config-managerツールを使用して、yumの構成を更新します。
# yum-config-manager --enable ol7_ceph30 ol7_latest ol7_optional_latest ol7_addons ol7_UEKR5
Ceph Storage ClusterノードをCeph Storage for Oracle Linuxパッケージのインストール用に準備できるようになりました。「Ceph Storage Clusterのインストールおよび構成」を参照してください。
Ceph Storage Clusterのインストールおよび構成
Ceph Storage Clusterは、ノードと呼ばれる複数のシステムで構成されます。ノードでは、様々なソフトウェア・デーモンを実行します。
-
すべてのノードで、Cephオブジェクト・ストレージ・デバイス(OSD)デーモンを実行します。
-
1つ以上のノードで、CephモニターおよびCephマネージャのデーモンを実行します。CephモニターとCephマネージャは、同じノードで実行する必要があります。
-
オプションで、1つ以上のノードでCeph Object Gatewayデーモンを実行します。
-
オプションで、1つ以上のノードでメタデータ・サーバー・デーモンを実行し、Cephファイル・システムを使用します。
1つのノードが管理ノードとして選択され、そのノードから、Cephコマンドを実行してクラスタを制御およびモニターできます。通常、管理ノードはデプロイメント・ノードとしても使用され、このノードから他のシステムを自動的に設定し、クラスタ内のノードとして構成できます。
データ整合性を実現するため、Ceph Storage Clusterには、オブジェクトのコピーを格納する2つ以上のノードが含まれている必要があります。高可用性を実現するため、Ceph Storage Clusterには、オブジェクトのコピーを格納する3つ以上のノードが含まれている必要があります。
次のステップで使用される例では、管理およびデプロイメント・ノードはceph-node1.example.com
です。Ceph Storage Clusterで使用されるノードは、ceph-node2.example.com
、ceph-node3.example.com
およびceph-node4.example.com
です。
Ceph Storage Clusterノードの準備
Ceph Storage Clusterノードとして使用する各Oracle Linuxシステムには、いくつかの基本的な要件があります。それには次の項目が含まれ、デプロイメントを開始する前に準備作業が必要になる場合があります。
-
時刻が正確で、Ceph Storage Cluster内のすべてのノードで同期されている必要があります。これを実現するには、クラスタ内のノードとして実行する各システムでNTPをインストールして構成します。NTPサービスがまだ構成されていない場合、インストールして起動します。NTPの構成の詳細は、『Oracle® Linux 7: 管理者ガイド』を参照してください。
ノート:
クラスタ内のノードでhwclock --showコマンドを使用して、すべてのノードが時間において一致していることを確認します。ノードのクロックの差異が50ミリ秒を超えると、ceph healthコマンドによって警告が表示されます。
health HEALTH_WARN clock skew detected on mon
-
クラスタ内のノード間でCeph Storage Clusterネットワーク通信を実行できる必要があります。任意のノードでファイアウォール・ソフトウェアが動作している場合は、それを無効化するか、可能であれば必要なポート上でネットワーク・トラフィックが可能になるように構成する必要があります。
可能であれば、ファイアウォールを実行したまま、次のルールを構成します。
-
ポート6789上でTCPトラフィックを許可し、Cephモニターを有効にします。
# firewall-cmd --zone=public --add-port=6789/tcp --permanent
-
ポート6800から7300のTCPトラフィックを許可し、Ceph OSDデーモンのトラフィックを有効にします。
# firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
-
ポート7480上でTCPトラフィックを許可し、Ceph Object Gatewayを有効にします。
# firewall-cmd --zone=public --add-port=7480/tcp --permanent
-
Ceph iSCSI Gatewayノード上のポート3260および5000でTCPトラフィックを許可します。
# firewall-cmd --zone=public --add-port=3260/tcp --add-port=5000/tcp --permanent
-
任意のNFSサーバー・ノード上のポート2049でTCPトラフィックを許可します。
# firewall-cmd --zone=public --add-port=2049/tcp --permanent
-
ファイアウォール・ルールを変更した後で、ファイアウォール・デーモン・サービスを再ロードおよび再起動します。
# firewall-cmd --reload # systemctl restart firewalld.service
または、Oracle Linux 7でファイアウォール・デーモンを停止および無効にします。
# systemctl stop firewalld # systemctl disable firewalld
-
-
Ceph Storage Clusterノードが、クラスタ内の各ノードの完全修飾ドメイン名を解決できる必要があります。そのためには、DNSを使用するか、各システムの
/etc/hosts
にエントリを入力します。DNSを使用する場合は、DNSに十分な冗長性があり、クラスタがいつでも名前解決を実行できるようにする必要があります。/etc/hosts
を編集する場合は、たとえば次のように、Ceph Storage Cluster内のすべてのノードのIPアドレスとホスト名のエントリを追加します。192.168.1.51 ceph-node1.example.com ceph-node1 192.168.1.52 ceph-node2.example.com ceph-node2 192.168.1.53 ceph-node3.example.com ceph-node3 192.168.1.54 ceph-node4.example.com ceph-node4
ノート:
DNSを使用してIPアドレス・マッピングへのホスト名を構成できますが、DNSサービスが使用できなくなる場合に備えて、
/etc/hosts
も構成することをお薦めします。 -
デプロイメントを可能にするため、Ceph Storage Clusterデプロイメント・ノードがクラスタ内の各候補ノードにSSH経由で接続できる必要があります。そのためには、デプロイメント・ノードでSSHキーを生成し、その公開キーをCeph Storage Clusterの他の各ノードにコピーする必要があります。
-
デプロイメント・ノード上で、空のパスフレーズを指定して、SSHキーを生成します。
# ssh-keygen
-
たとえば次のように、デプロイメント・ノードから、そのキーをCeph Storage Clusterの他のノードにコピーします。
# ssh-copy-id root@ceph-node2 # ssh-copy-id root@ceph-node3 # ssh-copy-id root@ceph-node4
-
-
パスワードなしのsudo権限を持つユーザーとして実行中に、ceph-deployでエラーが発生するのを防ぐためには、visudoを使用して
/etc/sudoers
内のDefaults requiretty
設定をコメント・アウトする、またはその設定をDefaults:ceph !requiretty
に変更します。
これで、Ceph Storage Clusterデプロイメント・ノード(通常は管理ノードと同じシステム)をインストールして構成できます。「デプロイメント・ノードのインストールおよび構成」を参照してください。
デプロイメント・ノードのインストールおよび構成
次のステップで使用される例では、デプロイメント・ノードはceph-node1.example.com
(192.168.1.51)で、これは管理ノードと同じです。
デプロイメント・ノードで次のステップを実行します。
-
ceph-deploy
パッケージをインストールします。# yum install ceph-deploy
-
たとえば次のように、Ceph Storage ClusterのCeph構成ディレクトリを作成し、このディレクトリに変更します。
# mkdir /var/mydom_ceph # cd /var/mydom_ceph
これは、デプロイメント・ノードが構成変更をクラスタとクライアント・ノードおよびゲートウェイ・ノードにロール・アウトする場合に使用する作業用の構成ディレクトリです。今後、Ceph構成ファイルを変更する必要がある場合は、このディレクトリで変更してから、ceph-deploy config pushコマンドを使用して、クラスタ内の他のノードの構成を更新してください。
すべてのceph-deployコマンドは、この作業ディレクトリから実行する必要があります。このガイドのこれ以降のコマンドでは、このディレクトリを表すために
$CEPH_CONFIG_DIR
という表記を使用します。 -
たとえば次のように、ceph-deployコマンドを使用してCeph Storage Clusterのメンバーを定義します。
# $CEPH_CONFIG_DIR/ceph-deploy new ceph-node2
複数のノードを定義するには、たとえば次のように、それらをスペース区切りのリストに指定します。
# $CEPH_CONFIG_DIR/ceph-deploy new ceph-node2 ceph-node3 ceph-node4
-
(オプション) ceph-deployコマンドを初めて実行すると、Ceph Storage Clusterを構成するためにファイルのセットが作成されます。
$CEPH_CONFIG_DIR/ceph.conf
を編集して、Ceph機能のオプションを設定できます。たとえば、数個のOSDのみを含むテスト環境を設定する場合は、レプリカのデフォルトの数を削減できます(デフォルトは3
)。次に例を示します。osd pool default size = 2
-
(オプション) BlueStoreは、新しいOSDのデフォルトのバックエンドです。Oracleでは、BlueStoreだけでなく、OSDでBtrfsまたはXFSファイル・システムを使用するFileStoreもサポートしています。Oracleワークロード用に、OSDでBtrfsまたはXFSファイル・システムを使用することをお薦めします。Ceph Storage Clusterでは、BlueStoreとFileStoreのOSDを組み合せて使用できます。
OSDでBtrfsを使用するには、Ceph構成ファイルに次のエントリを追加します。
enable experimental unrecoverable data corrupting features = btrfs
これで、残りのCeph Storage ClusterノードにCephをインストールできるようになります。「Ceph Storage Clusterノードのインストールおよび構成」を参照してください。
Ceph Storage Clusterノードのインストールおよび構成
Ceph Storage for Oracle Linuxデプロイメント・ノードをインストールして構成した後、このノードを使用して、Ceph Storage Clusterに参加している他のノードにCeph Storage for Oracle Linuxをインストールできます。
すべてのCeph Storage ClusterノードにCeph Storage for Oracle Linuxをインストールするには、デプロイメント・ノード上で次のコマンドを実行します。
# $CEPH_CONFIG_DIR/ceph-deploy install ceph-node2
複数のノードにソフトウェアをインストールするには、たとえば次のように、それらをスペース区切りのリストに指定します。
# $CEPH_CONFIG_DIR/ceph-deploy install ceph-node2 ceph-node3 ceph-node4
各ノードにCephパッケージをインストールした後、たとえば、各ノードのファイアウォール・ルールにCephサービスを追加することが必要になる場合があります。
# sudo firewall-cmd --zone=public --add-service=ceph-mon --permanent # sudo firewall-cmd --zone=public --add-service=ceph --permanent # sudo firewall-cmd --reload # sudo systemctl restart firewalld.service
Ceph Storage Clusterを構成するには、管理ノード上で次のステップを実行します。
-
Cephモニターを初期化します。
# $CEPH_CONFIG_DIR/ceph-deploy mon create-initial
-
たとえば次のように、Ceph Storage Clusterの1つ以上のノードにCephモニターをデプロイします。
# $CEPH_CONFIG_DIR/ceph-deploy mon create ceph-node2
複数のノードにCephモニターをデプロイするには、たとえば次のように、それらをスペース区切りのリストに指定します。
# $CEPH_CONFIG_DIR/ceph-deploy mon create ceph-node2 ceph-node3 ceph-node4
高可用性を実現するため、少なくとも3つのノードをCephモニターとして構成することをお薦めします。
-
Cephマネージャ・デーモンをCeph Storage Clusterの1つ以上のノードにデプロイします。Cephマネージャ・デーモンをCephモニターとして使用するものと同じノードにデプロイすることをお薦めします。
# $CEPH_CONFIG_DIR/ceph-deploy mgr create ceph-node2
複数のノードにCephマネージャをデプロイするには、たとえば次のように、それらをスペース区切りのリストに指定します。
# $CEPH_CONFIG_DIR/ceph-deploy mgr create ceph-node2 ceph-node3 ceph-node4
-
たとえば次のように、Cephモニターの1つから、モニター・キー、およびOSDとMDSのブートストラップ・キーリングを収集します。
# $CEPH_CONFIG_DIR/ceph-deploy gatherkeys ceph-node3
-
Ceph Storage Clusterで使用するOSDノードを作成します。OSDの作成の詳細は、「オブジェクト・ストレージ・デバイス(OSD)ノードの作成」を参照してください。
-
Cephモニタリングのコマンドライン・インタフェース(CLI)
ceph
を使用してCeph Storage Clusterを管理する、管理ノードを作成します。管理ホストの作成の詳細は、「Ceph Storage Cluster管理ホストの作成」を参照してください。 -
cephコマンドを使用して、クラスタのステータスと状態を確認できます。管理ノードで、次のように入力します。
# ceph health # ceph status
HEALTH_OK
として状態が表示され、クラスタが安定するまで、通常、数分かかります。クラスタ・クォーラム・ステータスを確認して、クラスタ・モニターのクォーラム・ステータスに関する指標を取得することもできます。# ceph quorum_status --format json-pretty
クラスタの状態またはステータスに関する問題のトラブルシューティングの詳細は、アップストリームのCephドキュメントを参照してください。
-
(オプション) Cephファイル・システム(Ceph FS)を使用する場合は、Ceph Metadata Server (MDS)をデプロイします。MDSサービスでは大容量のリソースを必要としないため、このサービスをCeph Storage Cluster内の既存のモニター・ノードにインストールできます。Ceph FSの設定の詳細は、「Ceph FSの設定および使用」を参照してください。
オブジェクト・ストレージ・デバイス(OSD)ノードの作成
この項では、Ceph Storage Clusterでのオブジェクト・ストレージ・デバイス(OSD)ノードの作成について説明します。
BlueStoreは、OSDのデフォルトのバックエンドです。Oracleでは、BlueStoreだけでなく、OSDでXFSおよびBtrfsファイル・システムを提供するFileStoreオプションもサポートしています。Oracleワークロード用に、OSDでXFSまたはBtrfsファイル・システムを使用することをお薦めします。
BlueStore OSDの作成
Ceph Storage ClusterにBlueStore OSDノードを追加する前に、まず、指定されたデバイス上のすべてのデータを削除する必要があります。
# $CEPH_CONFIG_DIR/ceph-deploy disk zap node device
nodeを、ディスクが配置されているノード名またはホスト名に置き換えます。deviceを、ディスクが存在するホスト上のデバイスへのパスに置き換えます。たとえば、Ceph Storage Clusterのceph-node2
という名前のノードで/dev/sdb
という名前のデバイス上のデータを削除するには、次のようにします。
# $CEPH_CONFIG_DIR/ceph-deploy disk zap ceph-node2 /dev/sdb
BlueStore OSDを作成するには、次のように入力します。
# $CEPH_CONFIG_DIR/ceph-deploy osd create --data device node
このコマンドにより、指定したディスクを使用して、ボリューム・グループおよび論理ボリュームが作成されます。データとジャーナルは同じ論理ボリュームに存在します。nodeを、ディスクが配置されているノード名またはホスト名に置き換えます。deviceを、ディスクが存在するホスト上のデバイスへのパスに置き換えます。たとえば、次を実行します。
# $CEPH_CONFIG_DIR/ceph-deploy osd create --data /dev/sdb ceph-node2
FileStore OSDの作成
FileStore OSDを作成するには、まず、必要なパーティション(データ用とジャーナル用)を作成する必要があります。これは、OSDノードで実行する必要があります。この例では、サイズが40GBのデータ・パーティションを/dev/sdb1
に、およびサイズが12GBのジャーナル・パーティションを/dev/sdb2
に作成します。
# parted /dev/sdb --script -- mklabel gpt # parted --script /dev/sdb mkpart primary 0MB 40000MB # parted --script /dev/sdb mkpart primary 42000MB 55000MB # dd if=/dev/zero of=/dev/sdb1 bs=1M count=1000 # sgdisk --zap-all --clear --mbrtogpt -g -- /dev/sdb2 # ceph-volume lvm zap /dev/sdb2
デプロイメント・ノードで、FileStore OSDを作成します。OSDファイル・タイプを指定するには、OSDの作成時に--filestore
および--fs-type
パラメータを使用します。次の例は、XFSを使用してFileStore OSDを作成する方法を示しています。
# CEPH_CONFIG_DIR/ceph-deploy osd create --filestore --fs-type xfs \ --data /dev/sdb1 --journal /dev/sdb2 ceph-node2
OSDでBtrfsを使用するには、たとえば次のように、OSDの作成時に--fs-type btrfs
オプションを使用します。
# CEPH_CONFIG_DIR/ceph-deploy osd create --filestore --fs-type btrfs \ --data /dev/sdb1 --journal /dev/sdb2 ceph-node2
Ceph Storage Cluster管理ホストの作成
Ceph Storage Clusterを設定したら、ホスト上のユーザーが管理ユーザーとしてcephコマンドラインを使用できるように、クライアント管理キーおよびCeph構成ファイルを別のホストに指定する必要があります。この例では、ceph-node1は、Cephコマンドライン・インタフェース(CLI)を使用してクラスタを管理するように構成されたクライアント・システムのホスト名です。このノードは、例のデプロイメント・ノードとしても使用されます。
デプロイメント・ノードで、たとえば次のように、ceph-deployを使用してCeph CLIをインストールします。
# $CEPH_CONFIG_DIR/ceph-deploy admin ceph-node1
別のホスト(これらの例で使用されているデプロイメント・ノードではない)を使用している場合は、さらにいくつかのステップがあります。
-
デプロイメント・ノードで、たとえば次のように、Ceph管理に使用するホストにSSHキーをコピーします。
# ssh-copy-id root@ceph-client
この例では、DNSおよび/または
/etc/hosts
にCephクライアント・システム用のエントリを構成していることを前提としています。 -
デプロイメント・ノードで、たとえば次のように、ceph-deployを使用してCeph Storage for Oracle Linuxパッケージをインストールします。
# $CEPH_CONFIG_DIR/ceph-deploy install ceph-client
-
デプロイメント・ノードで、たとえば次のように、Ceph構成ファイルおよびCephキーリングをコピーし、Ceph CLI (ceph)をインストールします。
# $CEPH_CONFIG_DIR/ceph-deploy admin ceph-client
これで、Ceph CLI (ceph
)を使用してCeph Storage Clusterを管理できるようになります。
Cephマネージャ・ダッシュボードのデプロイ
Cephマネージャ・サービス(ceph-mgr
)には、Ceph Storage Clusterに関するモニタリング情報を表示するためのWebベースのユーザー・インタフェースが含まれています。Cephマネージャ・ダッシュボードは読取り専用です。
Cephマネージャ・ダッシュボードのセキュリティを強化する場合は、ローカル・ポートでリスニングするようにモジュールを構成し、プロキシ・サーバーを使用して、リモート・アクセスにTLSまたはアクセス制御を提供する必要があります。
Cephマネージャ・ダッシュボードをデプロイおよび接続するには:
-
Cephマネージャ・ダッシュボードを有効にします。
# ceph mgr module enable dashboard
Cephデプロイメントの実行時にダッシュボードを有効にする場合は、
$CEPH_CONFIG_DIR/ceph.conf
ファイルに次を追加します。[mon] mgr initial modules = dashboard
-
たとえば次のように、管理ノードでceph mgr servicesコマンドを実行して、ダッシュボードにアクセスするためのURLを表示します。
# ceph mgr services { "dashboard": "http://ceph-node1.example.com:7000/" }
Cephマネージャ・ダッシュボードは、デフォルトでポート
7000
で実行されます。Webブラウザを使用して表示されるURLに接続し、ダッシュボードにアクセスします。
Ceph Storage Clusterノードの削除
この項では、Ceph Storage ClusterからOSDおよびCephマネージャ・ノードを削除する方法について説明します。その他のノード・タイプの削除の詳細は、アップストリームCephのドキュメントを参照してください。
注意:
この項のステップを実行すると、Ceph Storage Clusterノード上のすべてのデータが削除されます。
OSDノードの削除
この項では、Ceph Storage ClusterからOSDノードを削除する方法について説明します。
OSDノードの削除
-
OSDノードで、IDを検索します。
# systemctl status ceph-osd@*
結果には、次のような形式でノードのIDがリストされます。
ceph-osd@1.service - Ceph object storage daemon osd.1
この場合、IDは1です。
-
管理ノードで、クラスタからOSDを削除します。たとえば、次を実行します。
# ceph osd out osd.1
-
OSDノードで、IDを使用してサービスを停止および無効にします。たとえば、次を実行します。
# systemctl stop ceph-osd@1.service # systemctl disable ceph-osd@1.service
-
管理ノードで、CRUSHマップからOSDを削除し、認可キーを削除して、クラスタからOSDを削除します。たとえば、次を実行します。
# ceph osd crush remove osd.1 # ceph auth del osd.1 # ceph osd rm 1
-
/var/lib/ceph
ディレクトリのデータを削除してCephパッケージをアンインストールするには、デプロイメント・ノードから次を実行します。# $CEPH_CONFIG_DIR/ceph-deploy purge hostname
または、
/var/lib/ceph
ディレクトリからすべてのデータを削除することもできますが、Cephパッケージはインストールしたままにします。これを行うには、デプロイメント・ノードから次を実行します。# $CEPH_CONFIG_DIR/ceph-deploy purgedata hostname
-
OSDノードで、ディスク上のOSDに使用されるボリューム・グループおよびボリューム・ラベルを削除します。たとえば、ボリューム・ラベルを削除するには、lvdisplayコマンドを使用してボリューム・ラベルをリストし、任意のラベルを削除します。
# lvdisplay ... # lvremove --force /dev/ceph-dc39f7cc-e423-48d3-a466-9701e7bf972a/osd-block-f7db38d2-...
vgdisplayコマンドを使用してボリューム・グループをリストし、任意のグループを削除します。
# vgdisplay ... # vgremove --force ceph-dc39f7cc-e423-48d3-a466-9701e7bf972a
-
Ceph構成ファイルで削除するOSDに固有の構成エントリが存在する場合は、それらを削除する必要があります。デプロイメント・ノードで、
$CEPH_CONFIG_DIR/ceph.conf
ファイルを編集して、そのノードのすべてのエントリを削除します。デプロイメント・ノードで、残りのすべてのOSDノードに構成変更をプッシュします。たとえば、次のようになります。
# $CEPH_CONFIG_DIR/ceph-deploy --overwrite-conf config push ceph-node2 ceph-node3 ceph-node4
残りの各OSDノードで、
ceph-osd
デーモンを再起動します。# systemctl restart ceph-osd.target
Cephモニター・ノードの削除
この項では、Ceph Storage ClusterからCephモニター・ノードを削除する方法について説明します。
Cephモニター・ノードを削除するには:
-
デプロイメント・ノードで、クラスタからCephモニター・ノードを削除します。たとえば、次を実行します。
# $CEPH_CONFIG_DIR/ceph-deploy mon destroy hostname
-
Cephモニター・ノードで、サービスを停止および無効にします。たとえば、次を実行します。
# systemctl stop ceph-mon@hostname.service # systemctl disable ceph-mon@hostname.service
-
/var/lib/ceph
ディレクトリのデータを削除してCephパッケージをアンインストールするには、デプロイメント・ノードから次を実行します。# $CEPH_CONFIG_DIR/ceph-deploy purge hostname
または、
/var/lib/ceph
ディレクトリからすべてのデータを削除することもできますが、Cephパッケージはインストールしたままにします。これを行うには、デプロイメント・ノードから次を実行します。# $CEPH_CONFIG_DIR/ceph-deploy purgedata hostname
-
Ceph構成ファイルで削除するCephモニター・ノードに固有の構成エントリが存在する場合は、それらを削除する必要があります。デプロイメント・ノードで、
$CEPH_CONFIG_DIR/ceph.conf
ファイルを編集して、そのノードのすべてのエントリを削除します。デプロイメント・ノードで、残りのすべてのCephモニター・ノードに構成変更をプッシュします。たとえば、次を実行します。
# $CEPH_CONFIG_DIR/ceph-deploy --overwrite-conf config push ceph-node2 ceph-node3 ceph-node4
残りの各Cephモニター・ノードで、
ceph-mon
デーモンを再起動します。# systemctl restart ceph-mon.target
Ceph Storage Clusterノードのアップグレード
この項では、Oracle Linuxオペレーティング・システムをアップグレードし、サポートされているUnbreakable Enterprise Kernelに更新する方法について説明します。Ceph Storage Cluster内の各ノードでオペレーティング・システムがアップグレードされると、各ノードでCeph Storage for Oracle Linuxをアップグレードできます。
Oracle Linuxのアップグレード
オペレーティング・システムは、Oracle Linux 7.5以降である必要があります。ステップに従って、Ceph Storage Clusterの各ノードでオペレーティング・システムをアップグレードします。
-
ULNを使用している場合は、Oracle Linux 7
ol7_x86_64_latest
チャネルをサブスクライブします。または、Oracle Linux yumサーバーを使用している場合は、Oracle Linux 7ol7_latest
リポジトリへのアクセスを有効にします。 -
yum updateコマンドを実行して、パッケージを更新します。
# yum update
-
アップグレードが完了したら、システムを再起動します。
# systemctl reboot
-
デフォルトのブート・カーネルでない場合は、システムの起動時に新しいOracle Linux 7カーネル・バージョンを選択します。
Oracle Linux 7のアップグレードの詳細は、『Oracle® Linux 7: インストレーション・ガイド』を参照してください
Unbreakable Enterprise Kernelのアップグレード
Unbreakable Enterprise Kernelは、UEK R5以降である必要があります。ステップに従って、Ceph Storage Clusterの各ノードでUEK R5にアップグレードします。
-
ULNを使用している場合は、UEK R5チャネル
ol7_x86_64_UEKR5
をサブスクライブします。または、Oracle Linux yumサーバーを使用している場合は、UEK R5リポジトリol7_UEKR5
へのアクセスを有効にします。UEK R4チャネルおよびyumリポジトリが有効化されている場合は、必ずそれらも無効にしてください。 -
yum updateコマンドを実行して、パッケージを更新します。
# yum update
-
アップグレードが完了したら、システムを再起動します。
# systemctl reboot
-
デフォルトのブート・カーネルでない場合は、システムの起動時にUEK R5カーネル・バージョンを選択します。
UEK R5へのアップグレードの詳細は、Unbreakable Enterprise Kernel: リリース・ノートfor Unbreakable Enterprise Kernelリリース5を参照してください。また、Unbreakable Enterprise Kernelドキュメントのリリース・ノートで最新の更新リリースを確認してください。
Ceph Storage for Oracle Linuxのアップグレード
この項では、Ceph Storage for Oracle Linuxリリース2.0コンポーネントの現在のリリースへのアップグレードについて説明します。アップグレード中にCephデーモンを停止する必要はありませんが、アップグレード中にCeph Storage Clusterを使用しないことをお薦めします。アップグレード中にデータ整合性を保護するために、次のことをお薦めします。
-
Ceph Storage Clusterを使用対象から削除します。
-
Cephブロック・デバイス、Ceph Object GatewayおよびCephファイル・システム(Ceph FS)のファイル・システムを含め、クラスタ内のすべてのファイル・システムをアンマウントします。
-
この項の手順を使用して、クラスタをアップグレードします。
-
クラスタが正常であることを確認します。
-
すべてのファイル・システムを再マウントします。
-
クラスタを使用対象に戻します。
コンポーネント・アップグレードが必要な場合には、次の順序でアップグレードを実行することをお薦めします。
-
Ceph Deployパッケージ
-
Cephモニター
-
Cephマネージャ(新しいデーモンをデプロイ)
-
Ceph OSD
-
Ceph Metadata Server
-
Ceph Object Gateway
特定のタイプのデーモンをすべて一緒にアップグレードして、それらがすべて同じリリースであることを保証し、また、現在のリリースの新機能を構成または使用する前に、Ceph Storage Cluster内のすべてのコンポーネントがアップグレードされているようにすることをお薦めします。
次の手順では、Ceph Storage Clusterのアップグレードを実行するために必要な、いくつかの一般的ステップの概要を示します。
-
アップグレード・プロセスを開始するには、「Ceph Storage for Oracle Linuxパッケージへのアクセスの有効化」の説明に従って、Ceph Storage Clusterに属しているすべてのシステムのyum構成を更新して、適切なyumリポジトリおよびチャネルにアクセスできるようにする必要があります。
-
管理ノードから、次のコマンドを使用してCeph Storage Clusterのステータスを確認します。
# ceph health
クラスタの
health
がHEALTH_OK
の場合は、アップグレードを続行します。そうでない場合は、すべてのクラスタ・ノードが安定しており、正常であることを確認します。モニターのアップグレード中は、新しい消去コード・プールを作成しないでください。
各デーモンのCephバージョンをリストする
ceph versions
コマンドを使用して、アップグレードの進行状況をいつでもモニターできます。 -
管理ノードから
sortbitwise
オプションを設定し、内部ソート・アルゴリズムを変更します。このオプションは、新しいオブジェクト列挙APIと新しいBlueStoreバックエンドで使用されます。# ceph osd set sortbitwise
-
管理ノードから
noout
オプションを設定して、アップグレード時にCRUSHアルゴリズムによってクラスタのリバランスが試行されないようにします。# ceph osd set noout
-
Ceph構成ファイルを編集し、Ceph Storage for Oracle Linuxリリース2.0で必要な回避策を削除します。
rbd default features = 3
-
デプロイメント・ノードから、たとえば次のように、更新されたCeph構成ファイルをクラスタ内のすべてのノードにプッシュします。
# $CEPH_CONFIG_DIR/ceph-deploy --overwrite-conf config push ceph-node2 ceph-node3 ceph-node4
-
デプロイメント・ノード(通常は管理ノードと同じ)から、
ceph-deploy
パッケージをアップグレードします。# yum update ceph-deploy
-
デプロイメント・ノードで、たとえば次のように、
ceph-deploy
を使用して管理ノードでCephコマンドライン・インタフェース(CLI)をアップグレードします。# $CEPH_CONFIG_DIR/ceph-deploy admin ceph-node1
この例では、ceph-node1は、Ceph CLIを使用してクラスタを管理するように構成されたクライアント・システムのホスト名です。このノードは、例のデプロイメント・ノードとしても使用されます。
-
デプロイメント・ノードから、たとえば次のように、
ceph-deploy
を使用してCeph Storage Clusterの各ノードでパッケージをアップグレードします。# $CEPH_CONFIG_DIR/ceph-deploy install ceph-node2 ceph-node3 ceph-node4
ノート:
アップストリームのドキュメントには、
--release
スイッチの記述があり、アップデートするリリースを制御できることが示唆されていますが、このスイッチをOracle Linux環境で使用した場合には効果がなく、パッケージはyumを使用して最新のバージョンがインストールされます。 -
各Cephモニター・ノードで、Cephモニター・デーモンを再起動します。
# systemctl restart ceph-mon.target
すべてのCephモニター・デーモンがアップグレードされたら、管理ノードで、モニターのアップグレードが完了していることを確認します。
# ceph mon feature ls ... on current monmap (epoch 1) persistent: [kraken,luminous] required: [kraken,luminous]
出力には、
monmap
リストのpersistent
機能の下にluminous
が含まれる必要があります。 -
デプロイメント・ノードで、たとえば次のように、Cephモニター・ノードの1つから、モニター・キー、およびOSDとMDSのブートストラップ・キーリングを収集します。
# $CEPH_CONFIG_DIR/ceph-deploy gatherkeys ceph-node2
-
デプロイメント・ノードから、たとえば次のように、Cephモニター・デーモンを実行する各ノードに新しいCephマネージャ・デーモンをデプロイします。
# $CEPH_CONFIG_DIR/ceph-deploy --overwrite-conf mgr create ceph-node2 ceph-node3 ceph-node4
管理ノードで、次のコマンドを使用して、Cephマネージャ・デーモンが実行されていることを確認できます。
# ceph -s ... services: mon: 3 daemons, quorum ceph-node2,ceph-node3,ceph-node4 mgr: ceph-node2(active), standbys: ceph-node3, ceph-node4 osd: 3 osds: 3 up, 3 in ...
このコマンドにより、
mon
、mgr
およびosd
デーモンがリストされます。ceph-mgr
デーモンが各Cephマネージャ・ノードで実行されていることを確認することもできます。たとえば、Cephマネージャ・デーモンを含むceph-node2
という名前のノードの場合で、次のようにします。[ceph-node2 ~]# systemctl status ceph-mgr@ceph-node2 ● ceph-mgr@ceph-node2.service - Ceph cluster manager daemon Loaded: loaded (/usr/lib/systemd/system/ceph-mgr@.service; enabled; vendor preset: disabled) Active: active (running) since <date> Main PID: 4902 (ceph-mgr) CGroup: /system.slice/system-ceph\x2dmgr.slice/ceph-mgr@ceph-node2.service └─4902 /usr/bin/ceph-mgr -f --cluster ceph --id ceph-node2 --setuser ceph --setgroup ceph... ...
-
各OSDノードで、
ceph-osd
デーモンを再起動します。# systemctl restart ceph-osd.target
管理ノードから、たとえば次のように、ceph osd versionsコマンドを使用してOSDアップグレードの進行状況をモニターできます。
# ceph osd versions { "ceph version 12.2.4 (...) luminous (stable)": 2, "ceph version 10.2.6 (...)": 1, }
出力には、2つのOSDがLuminousにアップグレードされ、1つのOSDがまだアップグレードされていないことが表示されます。
-
Ceph Metadata Serverデーモンを実行する各ノードで、
ceph-mds
デーモンを再起動します。# systemctl restart ceph-mds.target
-
Ceph Object Gatewayデーモンを実行する各ノードで、
radosgw
デーモンを再起動します。# systemctl restart radosgw.target
-
管理ノードで、古い(Luminousより前の) OSDノードがCeph Storage Clusterに追加されないようにします。
# ceph osd require-osd-release luminous
-
次のコマンドを使用して、Ceph Storage Clusterのステータスを確認します。
# ceph health
クラスタの状態が
HEALTH_OK
である場合は、noout
オプションの設定を解除して、クラスタのバランスを調整するCRUSHアルゴリズムの機能を再度有効にします。# ceph osd unset noout
-
(オプション) BlueStoreは、Ceph Storage for Oracle Linuxリリース3.0の新しいOSDのデフォルト・バックエンドです。FileStoreバックエンドは、アップグレードされたOSDで使用でき、BlueStoreとFileStoreのOSDの組合せがサポートされています。OSDをFileStoreからBlueStoreに移行する場合は、次の場所でアップストリームのドキュメントを参照してください。
https://docs.ceph.com/en/latest/rados/operations/bluestore-migration/