Cephでは、データの冗長性を保つためにオブジェクトのレプリカを各ノードに作成するようになっている。
作成するレプリカ数はPoolごとに定義されていて、デフォルトではオリジナル含め3OSDにオブジェクトを配置するようになっている。
なお、現在のPoolのレプリカ数は以下のコマンドで確認出来る。
ceph osd pool get Pool名 size
[root@BS-PUB-CEPHADM ~]# ceph osd pool get .rgw size
size: 3
※CephのPool名がわからない場合は、以下のコマンドでPoolの一覧を取得出来る。
ceph os...
Proxmox VE 4.1では、クラスタを構成する各ノードにオブジェクトストレージである「Ceph」をインストールし、OSDとして動作させることが出来る。
つまり、Proxmoxのクラスタノードが10台以上とかいても、共通アクセスするストレージ機器を用意することなく動作を継続することが出来るということになる。イメージ的には、vSANに似たように利用することが可能となる。
Cephそのものの動作については、以下のページを参考にするとよいだろう。
RadosGW経由でアクセスしていて、以下のようなエラーが表示されることがある。
<!--?xml version="1.0" encoding="UTF-8"?--><code>TooManyBuckets</code>
Cephの管理用ダッシュボードに、『ceph-dash』と同じようなツールで『Kraken dash』というものがあるようなので、試しにインストールしてみることにした。
導入先はCeph管理ノード(CentOS 7)とする。
インストールは、以下のコマンドで行える。
yum upgrade && yum install -y python-pip python-devel libxml2-devel libxslt-devel git gcc
mkdir -p /var/www && cd /var/www
git clone https://github.com/krake...
Cephの管理・運用について、その瞬間のデータを保持する場合はスナップショットの取得が有効だ。
スナップショットを取得しておくことで、後からそのオブジェクトのデータを再取得することが出来る。
Cephでのスナップショットの取得には、radosコマンドを用いる。
1.スナップショット取得前の状態を確認する
まず、スナップショットを作成する前に、対象とするプールを確認しよう。
プールの一覧は、以下のコマンドで取得出来る。
rados lspools
[root@BS-PUB-CEPHADM ~]# rados lspools
rbd
.rgw.root
.rgw.contr...
前回紹介したceph-dashと同様の監視を、ターミナル上で行える『blessed-ceph-dash』というものがあるようなので、使ってみる事にした。
ceph-dashと同じく、導入先はCeph管理ノードとする。
以下のコマンドでインストールを行う。
npm install blessed-ceph-dash
Cephの監視方法について検討していたところ、『ceph-dash』というダッシュボードがあるということが分かったので、試しに入れてみる事にした。
使い方は簡単。まず、以下のコマンドでファイルをダウンロードする。
git clone https://github.com/Crapworks/ceph-dash
その後、中にある「./ceph-dash.py」を実行するだけだ。
そのまま実行するとアクセス待受け状態になってしまうので、バックグラウンド実行すると良いだろう。
nohup ceph-dash/ceph-dash.py &
前回、CephクラスタにOSDを追加していたが、今回はそのうちの1台をクラスタから切り離してみる。
1.ceph-monの設定から除外する
まず、ceph-monの監視対象から対象ノードを除外し、接続がされないようにする。
Ceph管理ノードで設定ファイルを開き、以下の項目から対象のノードを除外(削除)する。
- mon_initial_members
- mon_host
削除後、Ceph管理ノードから以下のコマンドで各ノードに設定ファイルを配布する。
ceph-deploy --overwrite config push Ceph管理ノード データノード1 ... デー...
さて、前回・前々回とCephクラスタを構築したが、これらはあくまでも最低台数でのクラスタを構築していた。
今回は、このクラスタにOSD(データノード)を追加し、3台構成から5台構成にする。
1.事前準備
さて、まず事前準備として、追加するデータノードに対し、以下のコマンドを実行する。
# NTP
yum install -y chrony
systemctl enable chronyd
systemctl start chronyd
# SELinux
setenforce 0
sed -i.bak "/SELINUX/s/enforcing/disabled/g" /etc...
前回構築したCephクラスタに対し、S3互換のオブジェクトゲートウェイである『RadosGateway』を導入する。
前回同様、Ceph管理ノードからの一元操作で処理を行う。
1.RadosGatewayの構築
まず、以下のコマンドをCeph管理ノードのceph newコマンドで生成した配布設定ファイルのあるディレクトリで実行する。
cat <> ceph.conf
[client]
rgw frontends = "civetweb port=80"
EOF
上のコマンドを実行し設定ファイルを編集後、設定ファイルを各ノードに配布する。
ceph-deplo...
最近、仕事でS3互換のインターフェイスやブロックデバイスとして使える分散オブジェクトストレージ『Ceph』を使っているのだが、ある程度触れる環境が欲しいと思ったので家に構築することにした。
そもそも、Cephってどういうものなのか?という部分については、以下の資料が詳しいのでリンクを掲載しておく。