Red Hat Training
A Red Hat training course is available for Red Hat Ceph Storage
付録G Red Hat Ceph Storage 2 から 3 への手動アップグレード
Ceph Storage Cluster は、クラスターの実行中にローリング方式でバージョン 2 からバージョン 3 にアップグレードできます。クラスター内の各ノードを順番にアップグレードします。前のノードが完了した後でのみ、次のノードに進みます。
Red Hat では、以下の順序で Ceph コンポーネントをアップグレードすることをお勧めします。
- ノードの監視
- OSD ノード
- Ceph Object Gateway ノード
- その他すべての Ceph クライアントノード
Red Hat Ceph Storage 3 では、新しいデーモン Ceph Manager (ceph-mgr
) が導入されています。モニターノードをアップグレードした後、ceph-mgr
をインストールします。
Red Hat Ceph Storage 2 を 3 にアップグレードするには、2 つの方法があります。
- Red Hat のコンテンツ配信ネットワーク (CDN) の使用
- Red Hat が提供する ISO イメージファイルを使用する
ストレージクラスターをアップグレードした後、レガシーチューナブルを使用して CRUSH マップに関するヘルス警告を出すことができます。詳細は、Red Hat Ceph Storage3 のストレージ戦略ガイドの CRUSHTunables セクションを参照してください。
例
$ ceph -s cluster 848135d7-cdb9-4084-8df2-fb5e41ae60bd health HEALTH_WARN crush map has legacy tunables (require bobtail, min is firefly) monmap e1: 1 mons at {ceph1=192.168.0.121:6789/0} election epoch 2, quorum 0 ceph1 osdmap e83: 2 osds: 2 up, 2 in pgmap v1864: 64 pgs, 1 pools, 38192 kB data, 17 objects 10376 MB used, 10083 MB / 20460 MB avail 64 active+clean
Red Hat は、すべての Ceph クライアントが Ceph ストレージクラスターと同じバージョンを実行することを推奨しています。
前提条件
アップグレードするクラスターに
exclusive-lock
機能を使用する Ceph Block Device イメージが含まれている場合には、全 Ceph Block Device ユーザーにクライアントをブラックリストに登録するパーミッションがあるようにしてください。ceph auth caps client.<ID> mon 'allow r, allow command "osd blacklist"' osd '<existing-OSD-user-capabilities>'
モニタノードのアップグレード
この項では、Ceph Monitorノードを後のバージョンにアップグレードする手順を説明します。モニターの数は奇数でなければなりません。1 つの Monitor をアップグレードしている間、ストレージクラスターにはクォーラムがあります。
手順
ストレージクラスタの各 Monitor ノードで以下の手順を行います。一度に 1 つの Monitor ノードのみをアップグレードします。
ソフトウェアリポジトリーを使用して Red Hat Ceph Storage 2 をインストールした場合は、リポジトリーを無効にします。
以下の行が
/etc/apt/sources.list
または/etc/apt/sources.list.d/ceph.list
ファイルにある場合は、行の先頭にハッシュ記号(#)
を追加して、Red Hat Ceph Storage 2 のオンラインリポジトリーをコメントアウトします。deb https://<customer_name>:<customer_password>@rhcs.download.redhat.com/ubuntu/2-updates/Installer deb https://<customer_name>:<customer_password>@rhcs.download.redhat.com/ubuntu/2-updates/Tools
以下のファイルを
/etc/apt/sources.list.d/
ディレクトリーから削除してください。Installer.list Tools.list
Red Hat Ceph Storage 3 Monitor リポジトリーを有効にします。
$ sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/MON $(lsb_release -sc) main | tee /etc/apt/sources.list.d/MON.list' $ sudo bash -c 'wget -O - https://www.redhat.com/security/fd431d51.txt | apt-key add -' $ sudo apt-get update
root
で Monitor プロセスを停止します。構文
$ sudo stop ceph-mon id=<monitor_host_name>
例
$ sudo stop ceph-mon id=node1
root
で、ceph-mon
パッケージをアップデートします。$ sudo apt-get update $ sudo apt-get dist-upgrade $ sudo apt-get install ceph-mon
Red Hat の最新バージョンがインストールされていることを確認します。
$ dpkg -s ceph-base | grep Version Version: 10.2.2-19redhat1trusty
root
として、所有者とグループの権限を更新します。構文
# chown -R <owner>:<group> <path_to_directory>
例
# chown -R ceph:ceph /var/lib/ceph/mon # chown -R ceph:ceph /var/log/ceph # chown -R ceph:ceph /var/run/ceph # chown ceph:ceph /etc/ceph/ceph.client.admin.keyring # chown ceph:ceph /etc/ceph/ceph.conf # chown ceph:ceph /etc/ceph/rbdmap
注記Ceph Monitor ノードが OpenStack Controller ノードと同じ場所にある場合、Glance および Cinder キーリングファイルは、それぞれ
glance
およびcinder
によって所有されている必要があります。以下に例を示します。# ls -l /etc/ceph/ ... -rw-------. 1 glance glance 64 <date> ceph.client.glance.keyring -rw-------. 1 cinder cinder 64 <date> ceph.client.cinder.keyring ...
不要になったパッケージを削除します。
$ sudo apt-get purge ceph ceph-osd
root
として、カーネルからデバイスイベントを再生します。# udevadm trigger
root
として、ceph-mon
プロセスを有効にします。$ sudo systemctl enable ceph-mon.target $ sudo systemctl enable ceph-mon@<monitor_host_name>
root
で Monitor ノードを再起動します。# shutdown -r now
Monitor ノードが起動したら、次の Monitor ノードに移動する前に、Ceph ストレージクラスターの状態を確認します。
# ceph -s
G.1. Ceph Manager の手動インストール
通常、Ansible 自動化ユーティリティーは、Red Hat Ceph Storage クラスターをデプロイする際に Ceph Manager デーモン (ceph-mgr
) をインストールします。ただし、Ansible を使用して Red Hat Ceph Storage を管理しない場合は、Ceph Manager を手動でインストールすることができます。Red Hat は、Ceph Manager デーモンと Ceph Monitor デーモンを同じノードに配置することを推奨します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター
-
root
またはsudo
アクセス -
rhel-7-server-rhceph-3-mon-els-rpms
リポジトリーが有効 -
ファイアウォールを使用している場合は、パブリックネットワーク上でポート
6800-7300
を開く
手順
ceph-mgr
がデプロイされるノードで、root
ユーザーまたは sudo
ユーティリティーで以下のコマンドを使用します。
ceph-mgr
パッケージをインストールします。[user@node1 ~]$ sudo apt-get install ceph-mgr
/var/lib/ceph/mgr/ceph-hostname/
ディレクトリーを作成します。mkdir /var/lib/ceph/mgr/ceph-hostname
hostname を、
ceph-mgr
デーモンがデプロイされるノードのホスト名に置き換えます。以下に例を示します。[user@node1 ~]$ sudo mkdir /var/lib/ceph/mgr/ceph-node1
新しく作成されたディレクトリーで、
ceph-mgr
デーモンの認証キーを作成します。[user@node1 ~]$ sudo ceph auth get-or-create mgr.`hostname -s` mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-node1/keyring
/var/lib/ceph/mgr/
ディレクトリーの所有者とグループをceph:ceph
に変更します。[user@node1 ~]$ sudo chown -R ceph:ceph /var/lib/ceph/mgr
ceph-mgr
ターゲットを有効にします。[user@node1 ~]$ sudo systemctl enable ceph-mgr.target
ceph-mgr
インスタンスを有効にして開始します。systemctl enable ceph-mgr@hostname systemctl start ceph-mgr@hostname
hostname を、
ceph-mgr
をデプロイするノードのホスト名に置き換えます。以下に例を示します。[user@node1 ~]$ sudo systemctl enable ceph-mgr@node1 [user@node1 ~]$ sudo systemctl start ceph-mgr@node1
ceph-mgr
デーモンが正常に起動していることを確認します。ceph -s
出力には、
services:
セクションの下に以下の行と同様の行が含まれます。mgr: node1(active)
-
追加の
ceph-mgr
デーモンをインストールして、現在のアクティブなデーモンに障害が発生した場合にアクティブになるスタンバイデーモンとして機能します。
OSD ノードのアップグレード
この項では、Ceph OSD ノードを後のバージョンにアップグレードする手順を説明します。
前提条件
OSD ノードをアップグレードすると、OSD が停止または再起動する可能性があるため、一部の配置グループがデグレードされます。Ceph がリカバリープロセスを開始しないようにするには、Monitor ノードで、noout
および norebalance
OSD フラグを設定します。
[root@monitor ~]# ceph osd set noout [root@monitor ~]# ceph osd set norebalance
手順
ストレージクラスタの各 OSD ノードで以下の手順を行います。一度に 1 つの OSD ノードのみをアップグレードします。Red Hat Ceph Storage 2.3 に対して ISO ベースのインストールが実行された場合は、この最初のステップをスキップしてください。
root
で、Red Hat Ceph Storage 2 のリポジトリーを無効にします。以下の行が
/etc/apt/sources.list
または/etc/apt/sources.list.d/ceph.list
ファイルにある場合は、行の先頭にハッシュ記号(#)
を追加して、Red Hat Ceph Storage 2 のオンラインリポジトリーをコメントアウトします。deb https://<customer_name>:<customer_password>@rhcs.download.redhat.com/ubuntu/2-updates/Installer deb https://<customer_name>:<customer_password>@rhcs.download.redhat.com/ubuntu/2-updates/Tools
以下のファイルを /etc/apt/sources.list.d/ ディレクトリーから削除してください。
Installer.list Tools.list
注記APT ソースファイル内の Red Hat Ceph Storage2 への参照をすべて削除します。Red Hat Ceph Storage 2 に対して ISO ベースのインストールが実行された場合は、この最初のステップをスキップしてください。
Red Hat Ceph Storage 3 OSD リポジトリーを有効にします。
$ sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/OSD $(lsb_release -sc) main | tee /etc/apt/sources.list.d/OSD.list' $ sudo bash -c 'wget -O - https://www.redhat.com/security/fd431d51.txt | apt-key add -' $ sudo apt-get update
root
として、実行中の OSD プロセスをすべて停止します。構文
$ sudo stop ceph-osd id=<osd_id>
例
$ sudo stop ceph-osd id=0
root
として、ceph-osd
パッケージを更新します。$ sudo apt-get update $ sudo apt-get dist-upgrade $ sudo apt-get install ceph-osd
Red Hat の最新バージョンがインストールされていることを確認します。
$ dpkg -s ceph-base | grep Version Version: 10.2.2-19redhat1trusty
root
として、新しく作成されたディレクトリーおよびファイルで所有者とグループのアクセス権を更新します。構文
# chown -R <owner>:<group> <path_to_directory>
例
# chown -R ceph:ceph /var/lib/ceph/osd # chown -R ceph:ceph /var/log/ceph # chown -R ceph:ceph /var/run/ceph # chown -R ceph:ceph /etc/ceph
注記次の
find
コマンドを使用すると、多数のディスクがある Ceph ストレージクラスターでchown
コマンドを並行して使用することにより、所有権を変更するプロセスが速くなる可能性があります。# find /var/lib/ceph/osd -maxdepth 1 -mindepth 1 -print | xargs -P12 -n1 chown -R ceph:ceph
不要になったパッケージを削除します。
$ sudo apt-get purge ceph ceph-mon
注記ceph
パッケージがメタパッケージになりました。Monitor ノードではceph-mon
パッケージのみが必要であり、OSD ノードではceph-osd
パッケージのみが必要であり、RADOSGateway ノードではceph-radosgw
パッケージのみが必要です。root
として、カーネルからデバイスイベントを再生します。# udevadm trigger
root
として、ceph-osd
プロセスを有効にします。$ sudo systemctl enable ceph-osd.target $ sudo systemctl enable ceph-osd@<osd_id>
root
として、OSD ノードを再起動します。# shutdown -r now
次の OSD ノードに移動します。
注記noout
フラグとnorebalance
フラグが設定されている場合、ストレージクラスターはHEALTH_WARN
状態になります。$ ceph health HEALTH_WARN noout,norebalance flag(s) set
Ceph Storage Cluster のアップグレードが完了したら、以前に設定した OSD フラグの設定を解除し、ストレージクラスターのステータスを確認します。
モニターノードで、すべての OSD ノードがアップグレードされた後、noout
フラグとnorebalance
フラグの設定を解除します。
# ceph osd unset noout # ceph osd unset norebalance
さらに、ceph osd require-osd-release <release>
コマンドを実行します。このコマンドにより、Red Hat Ceph Storage 2.3 を搭載した OSD をストレージクラスターに追加できなくなります。このコマンドを実行しない場合、ストレージステータスは HEALTH_WARN
になります。
# ceph osd require-osd-release luminous
関連情報
- ストレージクラスターに新しい OSD を追加してストレージ容量を拡張するには、Red Hat Ceph Storage3 の 管理ガイド の OSD の追加 セクションを参照してください。
Ceph Object Gateway ノードのアップグレード
このセクションでは、Ceph Object Gateway ノードを新しいバージョンにアップグレードする手順について説明します。
Red Hat は、これらのアップグレード手順を続行する前に、システムをバックアップすることをお勧めします。
前提条件
- Red Hat は、HAProxy などのロードバランサーの背後に Ceph Object Gateway を配置することをお勧めします。ロードバランサーを使用する場合は、リクエストが処理されなくなったら、ロードバランサーから Ceph Object Gateway を削除します。
rgw_region_root_pool
パラメーターで指定されたリージョンプールのカスタム名を使用する場合は、Ceph 構成ファイルの[global]
セクションにrgw_zonegroup_root_pool
パラメーターを追加します。rgw_zonegroup_root_pool
の値をrgw_region_root_pool
と同じになるように設定します。次に例を示します。[global] rgw_zonegroup_root_pool = .us.rgw.root
手順
ストレージクラスター内の各 Ceph Object Gateway ノードで次の手順を実行します。一度に 1 つのノードのみをアップグレードします。
オンラインリポジトリーを使用して Red Hat Ceph Storage をインストールした場合は、2 つのリポジトリーを無効にします。
/etc/apt/sources.list
ファイルと/etc/apt/sources.list.d/ceph.list
ファイルの次の行をコメントアウトします。# deb https://<customer_name>:<customer_password>@rhcs.download.redhat.com/ubuntu/2-updates/Installer # deb https://<customer_name>:<customer_password>@rhcs.download.redhat.com/ubuntu/2-updates/Tools
/etc/apt/sources.list.d/
ディレクトリーから次のファイルを削除します。# rm /etc/apt/sources.list.d/Installer.list # rm /etc/apt/sources.list.d/Tools.list
Red Hat Ceph Storage 3 Tools リポジトリーを有効にします。
$ sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/Tools $(lsb_release -sc) main | tee /etc/apt/sources.list.d/Tools.list' $ sudo bash -c 'wget -O - https://www.redhat.com/security/fd431d51.txt | apt-key add -' $ sudo apt-get update
Ceph Object Gateway プロセス (
ceph-radosgw
) を停止します。$ sudo stop radosgw id=rgw.<hostname>
<hostname>
を Ceph Object Gateway ホストの名前 (gateway-node
など) に置き換えます。$ sudo stop radosgw id=rgw.node
ceph-radosgw
パッケージを更新します。$ sudo apt-get update $ sudo apt-get dist-upgrade $ sudo apt-get install radosgw
新しく作成された
/var/lib/ceph/radosgw/
および/var/log/ceph/
ディレクトリーとそれらのコンテンツに対する所有者とグループの権限をceph
に変更します。# chown -R ceph:ceph /var/lib/ceph/radosgw # chown -R ceph:ceph /var/log/ceph
不要になったパッケージを削除します。
$ sudo apt-get purge ceph
注記ceph
パッケージがメタパッケージになりました。Monitor、OSD、Ceph Object Gatewayの各ノードでは、ceph-mon
、ceph-osd
、ceph-radosgw
パッケージのみが必要です。ceph-radosgw
プロセスを有効にします。$ sudo systemctl enable ceph-radosgw.target $ sudo systemctl enable ceph-radosgw@rgw.<hostname>
<hostname>
を Ceph Object Gateway ホストの名前 (gateway-node
など) に置き換えます。$ sudo systemctl enable ceph-radosgw.target $ sudo systemctl enable ceph-radosgw@rgw.gateway-node
Ceph Object Gateway ノードを再起動します。
# shutdown -r now
- ロードバランサーを使用する場合は、Ceph Object Gateway ノードをロードバランサーに追加し直します。
関連項目
Ceph クライアントノードのアップグレード
Ceph のクライアントは
- Ceph ブロックデバイス
- OpenStack Nova コンピュートノード
- QEMU/KVM ハイパーバイザー
- Ceph クライアント側ライブラリーを使用するカスタムアプリケーション
Red Hat は、すべての Ceph クライアントが Ceph ストレージクラスターと同じバージョンを実行することを推奨しています。
前提条件
- パッケージのアップグレード中に Ceph クライアントノードに対するすべての I/O 要求を停止して、予期しないエラーが発生しないようにします
手順
ソフトウェアリポジトリーを使用して Red Hat Ceph Storage 2 クライアントをインストールした場合は、リポジトリーを無効にします。
以下の行が
/etc/apt/sources.list
または/etc/apt/sources.list.d/ceph.list
ファイルにある場合は、行の先頭にハッシュ記号(#)
を追加して、Red Hat Ceph Storage 2 のオンラインリポジトリーをコメントアウトします。deb https://<customer_name>:<customer_password>@rhcs.download.redhat.com/ubuntu/2-updates/Installer deb https://<customer_name>:<customer_password>@rhcs.download.redhat.com/ubuntu/2-updates/Tools
以下のファイルを /etc/apt/sources.list.d/ ディレクトリーから削除してください。
Installer.list Tools.list
注記APT ソースファイル内の Red Hat Ceph Storage2 への参照をすべて削除します。
クライアントノードで、Red Hat Ceph Storage Tools 3 リポジトリーを有効にします。
$ sudo bash -c 'umask 0077; echo deb https://customername:customerpasswd@rhcs.download.redhat.com/3-updates/Tools $(lsb_release -sc) main | tee /etc/apt/sources.list.d/Tools.list' $ sudo bash -c 'wget -O - https://www.redhat.com/security/fd431d51.txt | apt-key add -' $ sudo apt-get update
クライアントノードで、
ceph-common
パッケージを更新します。$ sudo apt-get install ceph-common
ceph-common
パッケージをアップグレードした後、Ceph クライアントサイドライブラリーに依存するアプリケーションを再起動します。
QEMU/KVM インスタンスを実行している OpenStack Nova コンピュートノードをアップグレードする場合や、専用の QEMU/KVM クライアントを使用する場合には、インスタンスを再起動しても機能しないため、QEMU/KVM インスタンスを停止して起動してください。