このドキュメントで説明されているソフトウェアはサポートされていないか、拡張サポートが提供されています。
現在サポートされているリリースにアップグレードすることをお薦めします。
Ceph Storage for Oracle Linuxリリース1.0から現在のリリースへのオフライン・アップグレードに対するサポートは制限されています。 アップグレード完了後、現在のデプロイメントに固有の追加構成がいくつか必要になる場合があります。
アップグレードが必要な場合には、コンポーネントのアップグレードを次の順序で実行することをお薦めします。
Ceph Deployパッケージ
Cephモニター
Ceph OSDデーモン
Ceph Metadata Server
Ceph Object Gateway
特定のタイプのデーモンをすべて一緒にアップグレードして、それらがすべて同じリリースであることを保証し、また、現在のリリースの新機能を構成または使用する前に、クラスタ内のすべてのコンポーネントがアップグレードされているようにすることをお薦めします。
次の手順では、ストレージ・クラスタのアップグレードを実行するために必要な、いくつかの一般的手順の概要を示します。 アップグレード中は、クラスタをオフラインにする必要があります。
アップグレード・プロセスを開始するには、Ceph Storage Clusterに属しているすべてのシステムのYum構成を更新して、適切なYumリポジトリおよびチャネルにアクセスできるようにする必要があります(1.2項 「Cephパッケージへのアクセスの有効化」を参照)。
環境内のデプロイメント・ノードでCeph Deployパッケージをアップグレードします。
#
yum upgrade ceph-deploy
環境内の別のノードでCephサービスが実行されている場合は、各ノードのCephサービスを停止します。
#
/etc/init.d/ceph stop mon
#/etc/init.d/ceph stop osd
#/etc/init.d/ceph stop mds
クラスタのステータスをチェックして実行されていないことを確認します。
#
ceph status
Ceph Deployを使用し、ストレージ・クラスタ内の各ノード上でパッケージ更新をインストールします。
#
ceph-deploy install
ceph-node{1..4}
注意アップストリームのドキュメントには、
--release
スイッチの記述があり、アップデートするリリースを制御できることが示唆されていますが、このスイッチをOracle Linux環境で使用した場合には効果がなく、パッケージはYum経由で最新のバージョンがインストールされます。各ノードで、
/etc/ceph/ceph.conf
の最後に次の行を追加します。rbd default feature = 3 setuser match path = /var/lib/ceph/$type/$cluster-$id
各ノードで、
ceph
ユーザーとグループにCeph用のディレクトリの所有権があることを確認します。#
chown -R ceph:ceph /var/lib/ceph
#chown -R ceph:ceph /etc/ceph
各Cephモニター・ノードで、Cephモニター・サービスのsystemdサービスを手動で有効にする必要があります。 次に例を示します。
#
systemctl enable ceph-mon@
ceph-node1
.serviceサービスを有効にしたら、そのサービスを起動して状態をチェックし、正常に動作していることを確認します。
#
systemctl start ceph-mon@
#ceph-node1
.servicesystemctl status ceph-mon@
ceph-node1
.serviceクラスタ内の管理ノードから
noout
オプションを設定して、アップグレード時にCRUSHアルゴリズムによってクラスタのリバランスが試行されないようにします。#
ceph osd set noout
また、クラスタ内のすべてのOSDを
down
としてマークします。#
ceph osd down seq 0 1000
Ceph OSDデーモンが実行されている各ノードで、systemdサービスを有効にして再起動し、そのステータスをチェックしてサービスが正常に動作していることを確認します。
#
systemctl enable ceph-osd@
#0
.servicesystemctl restart ceph-osd@
#0
.servicesystemctl status ceph-osd@
0
.serviceceph-osd
サービスが有効化されたら、各Ceph OSDノードを再起動します。クラスタ内の管理ノード(通常はデプロイメント・ノードと同じ)から、次のコマンドを実行してOSDインスタンスを調整します。
#
ceph osd crush tunables default
OSDの調整可能なプロファイルをデフォルト設定に更新するには、Cephに接続しているどのCephクライアントも最新の状態であることが必要です。 以前のリリースに接続する設計の古いCephクライアントは、調整されたCephデプロイメントとの対話が困難になる可能性があります。
次のコマンドを使用して、クラスタのステータスを確認します。
#
ceph status
クラスタの状態が
HEALTH_OK
に設定されていない場合は、noout
オプションの設定を解除して、クラスタのバランスを調整するCRUSHアルゴリズムの機能を再度有効にします。#
ceph osd unset noout
Ceph MDSデーモンが実行されている各ノードで、systemdサービスを有効にして再起動します。
#
systemctl enable ceph-mds@
#ceph-node1
.servicesystemctl start ceph-mds@
ceph-node1
.service各ノード上で
/etc/ceph/ceph.conf
のsetuser match path
パラメータをコメント・アウトするか削除します。# setuser match path = /var/lib/ceph/$type/$cluster-$id
このパラメータが必要なのは、アップグレード時のみです。 有効なままにしておくと、Ceph Object Gatewayサービス(radosgw)の起動時に問題が生じる可能性があります。
Ceph Object Gatewayサービスが実行されている各ノードで、次の手順を実行してアップグレードを完了します。
レガシーのCeph Object Gatewayサービスのインスタンスが動作している場合は停止します。
#
/etc/init.d/ceph-radosgw stop
動作中のApacheインスタンスを停止して無効にし、ブート時に起動しないようにします。
#
systemctl stop httpd
#systemctl disable httpd
エディタで
/etc/ceph.conf
を開き、Ceph Object Gatewayの既存のCeph構成を編集します。以前のリリースのゲートウェイ構成には、次のような既存のエントリがあります。
[client.radosgw.gateway] host =
ceph-node4
keyring = /etc/ceph/ceph.client.radosgw.keyring rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock log file = /var/log/radosgw/client.radosgw.gateway.log rgw print continue = falseこのエントリを変更して、
rgw socket path
パラメータとrgw print continue
パラメータをコメント・アウトし、Civetweb Webサーバーで使用するポートを定義するrgw frontends
パラメータのエントリを追加します。 次に例を示します。[client.radosgw.gateway] host =
ceph-node4
keyring = /etc/ceph/ceph.client.radosgw.keyring # rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock log file = /var/log/radosgw/client.radosgw.gateway.log # rgw print continue = false rgw_frontends = civetweb port=80ヒント構成エントリ名をメモします。 この例では、
client.radosgw.gateway
です。 これを使用して、この構成用に有効にして実行する適切なsystemdサービスを指定します。 この例では、ゲートウェイ名はgateway
です。ゲートウェイ構成のsystemdサービスとターゲットを有効にして再起動します。 次に例を示します。
#
systemctl enable ceph-radosgw@radosgw.
#gateway
.servicesystemctl enable ceph-radosgw.target
#systemctl restart ceph-radosgw@radosgw.
gateway
.service重要サービスに対して正しいゲートウェイ名が指定されていることを確認します。 これは、構成内の名前と一致する必要があります。 この例では、ゲートウェイ名は
です。gateway
ゲートウェイ・サービスの実行中ステータスをチェックし、ゲートウェイが実行中でエラーがないことを確認します。
#
systemctl status ceph-radosgw@radosgw.
gateway
.serviceクライアントがゲートウェイにアクセスして既存のバケットのリストを表示できることを確認します。 サンプルのテスト・スクリプトは、1.6.1項 「単純なCeph Object Gateway」を参照してください。