「Ceph」の版間の差分

提供: Lisa Wiki
移動: 案内検索
(rootログインの設定)
(rootログインの設定)
行61: 行61:
 
===rootログインの設定===
 
===rootログインの設定===
 
EeePCにセットアップしたUbuntuにはssh接続出来なかったのでsshをインストールした。
 
EeePCにセットアップしたUbuntuにはssh接続出来なかったのでsshをインストールした。
 +
sudo su
 
  apt-get install ssh
 
  apt-get install ssh
 
rootでいきなりログイン出来る様に設定してしまう。<br/>
 
rootでいきなりログイン出来る様に設定してしまう。<br/>

2015年7月17日 (金) 04:33時点における版

Cephとは

分散ファイルシステム

必要機器

3台以上のPCが必要。

計画(予定)

第一段階でEeePC HDD500G×3台で構築してみる。
第二段階でBeagleBone Black HDD1.5T×4台の追加。
第三段階でRaspberryPi2B HDD2T×2台の追加。

Host名 IPアドレス OSD容量 OS 機器
eeepc1 192.168.100.1 500G Ubuntu14.04.2 EeePC 1000H
eeepc2 192.168.100.2 500G Ubuntu14.04.2 EeePC 1000H
eeepc3 192.168.100.3 500G Ubuntu14.04.2 EeePC 1000H
bbb1 192.168.100.11 1.5T Ubuntu14.04.2 BeagleBone Black
bbb2 192.168.100.12 1.5T Ubuntu14.04.2 BeagleBone Black
bbb3 192.168.100.13 1.5T Ubuntu14.04.2 BeagleBone Black
bbb4 192.168.100.14 1.5T Ubuntu14.04.2 BeagleBone Black
pi1 192.168.100.21 2T Raspbian RaspberryPi2B
pi2 192.168.100.22 2T Raspbian RaspberryPi2B

小型ボードだけで構築予定だったが、諸事情によりノートPC 3台で基本的なクラスターを作成し段階的に増やす方向にしました。
当初は、RaspberryPi2BのOSとしてOSMCを計画していたが、実験の結果OSDがDownする事が有り安定していなので急遽Raspbianに変更した。

EeePC 1000H の仕様

OS:Ubuntu 14.04.2 LTS
CPU:Atom N270
RAM:2G
HDD:500G
LAN:100M
USB:増設LAN Giga (実測値253Mbps) USB3.0の時は実測892Mbpsだそうです。

BeagleBone Black のPCの仕様

OS:Ubuntu 14.04.2 LTS
CPU:ARM
RAM:512M
LAN:100M
USB:増設HDD 1.5T

BeagleBone Black はメモリーが少ないので、最初から入っているApaceh2を削除します。

apt-get --purge remove apache2 

Raspberry Pi2B の仕様

OS:Raspbian
CPU:ARM
RAM:1G
LAN:100M
USB:増設HDD 2T

前準備

IPアドレスの設定

Hostsの設定

rootログインの設定

EeePCにセットアップしたUbuntuにはssh接続出来なかったのでsshをインストールした。

sudo su
apt-get install ssh

rootでいきなりログイン出来る様に設定してしまう。
rootのパスワードを設定します。これでいきなりsshでrootでログイン出来る様になります。

sudo su
passwd root
設定するパスワードを2回入力

OSMCは、これでいきなりログイン出来る様になりました。
Ubuntuは頑固でrootのパスワードを設定してもsshでいきなりrootログインはさせてくれなかった。
そこで、設定を変更しました。

sudo su
nano /etc/ssh/sshd_config

次の行を見つけ出し変更する。

PermitRootLogin without-password 変更前
                 ↓
PermitRootLogin yes              変更後

変更後、sshを再起動する。

service ssh restart

SSHパスワード無し鍵の設定

インストール中に何度もパスワードを入力するのは大変、なのでrootで互いに入れるようにしておきます。
1台目で鍵を作って、それを配ります。

cd ~
ssh-keygen
ssh-copy-id root@osmc1
ssh-copy-id root@osmc2
ssh-copy-id root@osmc3

配る為に、最初はパスワードを聞いて来ます。今回だけ頑張って入力してください。

Cephのセットアップ

管理用PCで全て行う

まず、ceph-deployをインストールします。

apt-get install ceph-deploy

次にセットアップデータがカレントに出来る仕様の様なので適当なフォルダーを作ってその中で作業を行う。

cd
mkdir ceph
cd ceph
ceph-deploy new osmc1 osmc2 osmc3
ceph-deploy install osmc1 osmc2 osmc3 arm1
ceph-deploy mon create-initial

これでmonが3台のPCにインストール出来たはずだ。monの状態を確認してみよう。

ceph mon stat

HDD提供開始

osdを設定します。

ceph-deploy osd prepare osmc1:/mnt/sda1
ceph-deploy osd prepare osmc2:/mnt/sda1
ceph-deploy osd prepare osmc3:/mnt/sda1
ceph-deploy osd activate osmc1:/mnt/sda1
ceph-deploy osd activate osmc2:/mnt/sda1
ceph-deploy osd activate osmc3:/mnt/sda1

これでosdの設定が出来ました。osdの状態を確認してみましょう。

ceph osd stat

mdsの設置

mdsを設置します。

ceph-deploy mds create osmc1 osmc2 osmc3

これでmdsの設置が出来ました。mdsの状態を確認してみましょう。

ceph mds stat

最後に全体の状態の確認

mon,osd,mdsの設定が終わったら、全体の確認をします。

ceph health

Cephのコマンドまとめ

全体の状態を見る

全体の状態を見る

ceph health

全体の状態を詳しく見る

ceph health detail

osdの状態を見る

osdの状態を見る

ceph osd stat

osdの状態を詳しく見る

ceph osd tree

monの状態を見る

monの状態を見る

ceph mon stat

mdsの状態を見る

mdsの状態を見る

ceph mds stat

ceph-deployのコマンドまとめ

調査中の為、暫くお待ちください。

CephFSでのマウント

マウント用のフォルダーを作成します。

mkdir /mnt/cluster

CephFSで使うキーを/etc/ceph/admin.keyに保管します。

ceph auth get-key client.admin > /etc/ceph/admin.key

マウントします。monを提供しているノードならどこでもいいらしい。今回はpi1に接続。

mount -t ceph pi1:6789:/ /mnt/cluster/ -o name=admin,secretfile=/etc/ceph/admin.key

マウント出来ているか確認します。

df -h

cronでマウント

レプリケーション数を変更するには

標準状態でインストールすると、レプリケーションは3になっていた。
つまり、三重化し耐障害性を高めている。ちょっとやりすぎかも。
そこで、二重化に変更してみた。

ceph osd pool set data size 2
ceph osd pool set metadata size 2
ceph osd pool set rbd size 2

このコマンドで即座に、変更される様だ。ceph -wは、もう使わない?
今回は、poolデータ三種類とも二重化に変更したが、rdbだけ四重化とか出来る。
レプリケーション数は多い方が安全だが、多いと書き込み量が増えて速度が落ちる様だ。
2~3ぐらいでいいでしょう。3から2に変更した事により1.5倍ぐらい速度アップした感じです。

Raspberry Pi での注意事項

OSMCをOSとして使う場合

OSMCの場合、カーネルに問題が有り、CephFSマウントは出来ませんでした。

RaspbianをOSとして使う場合

Raspbian標準のcephパッケージはかなり古いそうです。以下を実行し最新の状態にするとよい。

apt-get update
apt-get upgrade
wget --no-check-certificate -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
echo deb http://ceph.com/debian-firefly/ wheezy main | sudo tee /etc/apt/sources.list.d/ceph.list

sources.listの編集

nano /etc/apt/sources.list

変更前

deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi

変更後

deb http://mirrordirector.raspbian.org/raspbian/ testing main contrib non-free rpi

更に

apt-get update
apt-get upgrade  
apt-get dist-upgrade 

Raspbianの場合、カーネルに問題が有りCephFSマウントは出来ませんでした。
カーネルをコンパイルする事により解決するそうですが、コンパイルには12時間ほどかかるらしい。

時計の時刻のズレ

内蔵クロックが無いので起動時に、タイムサーバで調整する様だが、Cephのルールが厳しすぎる。
0.05秒以上のズレはダメみたいです。monサーバ同士で調整し最終的には、ピッタリ一致するようですが、調整に凄く時間がかかります。家の場合、最大5秒のズレがあった様で、調整には30分程度かかりました。

root@arm1:~# ceph health detail
HEALTH_WARN clock skew detected on mon.osmc2, mon.osmc3
mon.osmc2 addr 192.168.100.102:6789/0 clock skew 2.42326s > max 0.05s (latency 0.0367512s)
mon.osmc3 addr 192.168.100.103:6789/0 clock skew 0.16542s > max 0.05s (latency 0.103259s)

こうならない為にもNTPはインストールしておこう。

apt-get install ntp