
Ceph FS分散ファイルシステムを上げるのに数分しかかかりません
クイックリファレンス
Cephは、柔軟でスケーラブルなペタバイトストレージのオープンソース開発です。 基礎は、オブジェクトストレージ内の数十個のサーバーのディスクスペースを結合することです。これにより、柔軟な複数の擬似ランダムデータの冗長性が実現します。 Ceph開発者は、このオブジェクトストアをさらに3つのプロジェクトで補完します。
- RADOSゲートウェイ-S3およびSwift互換のRESTfulインターフェイス
- RBD-シン成長とスナップショットをサポートするブロックデバイス
- Ceph FS-分散POSIX準拠のファイルシステム
例の説明
私の小さな例では、ストレージとして3つのサーバーのみを使用しています。 各サーバーには、3つのSATAディスクがあります。システムとして
/dev/sda
、Ceph FSファイルシステムデータ用に
/dev/sdb
および
/dev/sdc
です。 この例のOSはUbuntu 12.04 LTSです。 別のサーバーがファイルシステムをマウントします。つまり、実際にはクライアントとして機能します。 デフォルトの冗長レベル、つまり同じブロックの2つのレプリカを使用します。
執筆時点で、開発者は
mkcephfs
を使用する古いものと新しい
mkcephfs
ceph-deploy
2つの簡単な構成を作成する方法を提供しています。 ブランチ0.6x(イカ)以降の新しいバージョンでは、ceph
ceph-deploy
を使用することを既にお勧めします。 しかし、この例では、mkcephfsを使用して、0.56.xブランチ(bobtail)の以前の安定したリリースを使用してい
mkcephfs
。
すぐに警告する必要があります-Ceph FSはまだ運用前の状態ですが、コミュニティの活動により、このプロジェクトはソフトウェア定義ストレージの中で最もホットなものの1つと呼ばれています。
始めましょう。
ステップ0. OSのインストール
最小限のインストールを実行します。 さらに、
ntpdate
とお気に入りのエディター(
vim
など)をインストールする必要があります。
aptitude update && aptitude install ntpdate vim
ステップ1. Cephパッケージをインストールする
クラスターとクライアントの各ノードで、Cephパッケージをインストールします
wget -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-bobtail/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/ceph.list aptitude update && aptitude install ceph
ステップ2.構成ファイルを作成する
各ノードとクライアントで、単一の構成ファイル
/etc/ceph/ceph.conf
作成します
[global] auth cluster required = cephx auth service required = cephx auth client required = cephx [osd] osd journal size = 2000 osd mkfs type = xfs osd mkfs options xfs = -f -i size=2048 osd mount options xfs = rw,noatime,inode64 [mon.a] host = node01 mon addr = 192.168.2.31:6789 [mon.b] host = node02 mon addr = 192.168.2.32:6789 [mon.c] host = node03 mon addr = 192.168.2.33:6789 [osd.0] host = node01 devs = /dev/sdb [osd.1] host = node01 devs = /dev/sdc [osd.2] host = node02 devs = /dev/sdb [osd.3] host = node02 devs = /dev/sdc [osd.4] host = node03 devs = /dev/sdb [osd.5] host = node03 devs = /dev/sdc [mds.a] host = node01
誰でもファイルを読み取り可能にする
chmod 644 /etc/ceph/ceph.conf
ステップ3.ノード間でパスワードなしのエントリを作成する
ルートパスワードを設定し、パスフレーズを指定せずにsshキーを生成します
passwd root ssh-keygen
ケースのノードの名前に従って、
/root/.ssh/config
にsshエイリアスを作成します
Host node01 Hostname node01.ceph.labspace.studiogrizzly.com User root Host node02 Hostname node02.ceph.labspace.studiogrizzly.com User root Host node03 Hostname node03.ceph.labspace.studiogrizzly.com User root
パブリックキーをクラスターの隣接ノードに追加します。
ssh-copy-id root@node02 ssh-copy-id root@node03
ステップ4.クラスターを展開する
まず、仕事に必要なドライブを準備します
mkfs -t xfs fs-options -f -i size=2048 /dev/sdb mkfs -t xfs fs-options -f -i size=2048 /dev/sdc
次に、作業カタログを準備し、設計に従ってディスクをマウントします
したがって、node01については、
mkdir -p /var/lib/ceph/osd/ceph-0 mkdir -p /var/lib/ceph/osd/ceph-1 mount /dev/sdb /var/lib/ceph/osd/ceph-0 -o noatime,inode64 mount /dev/sdc /var/lib/ceph/osd/ceph-1 -o noatime,inode64
node02の
mkdir -p /var/lib/ceph/osd/ceph-2 mkdir -p /var/lib/ceph/osd/ceph-3 mount /dev/sdb /var/lib/ceph/osd/ceph-2 -o noatime,inode64 mount /dev/sdc /var/lib/ceph/osd/ceph-3 -o noatime,inode64
およびnode03
mkdir -p /var/lib/ceph/osd/ceph-4 mkdir -p /var/lib/ceph/osd/ceph-5 mount /dev/sdb /var/lib/ceph/osd/ceph-4 -o noatime,inode64 mount /dev/sdc /var/lib/ceph/osd/ceph-5 -o noatime,inode64
最後に、node01で、Cephリポジトリ作成スクリプトを実行します
mkcephfs -a -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.keyring
次に、
ceph.keyring
キーをクラスターの他のノードにコピーします
scp /etc/ceph/ceph.keyring node02:/etc/ceph/ceph.keyring scp /etc/ceph/ceph.keyring node03:/etc/ceph/ceph.keyring
そしてクライアントノードで、私の場合
192.168.2.39
scp /etc/ceph/ceph.keyring 192.168.2.39:/etc/ceph/ceph.keyring
キーへの読み取りアクセスを設定します
chmod 644 /etc/ceph/ceph.keyring
ステップ5.起動とステータス
ノード間のパスワードなしのエントリのおかげで、任意のノードからクラスター全体を開始します
service ceph -a start
そこでクラスタの状態を確認します
ceph -s
通常の操作中に最も予想されるステータスは
HEALTH_OK
クライアント側で、必要な場所にディレクトリを作成します(例:
/mnt/cephfs
カーネル
ceph
キーを解析し、ファイルシステムをマウントします
mkdir /mnt/cephfs ceph-authtool --name client.admin /etc/ceph/ceph.keyring --print-key | tee /etc/ceph/admin.secret mount -t ceph node01:6789,node02:6789,node03:6789:/ /mnt/cephfs -o name=admin,secretfile=/etc/ceph/admin.secret,noatime
あとがき
これは、わずか15分で分散Ceph FSファイルシステムを取得する方法です。 パフォーマンス、安全性、およびメンテナンスの問題には、 より詳細な没入が必要であり、この資料は別の記事に記載されているか、別の記事に記載されています。
PS
OpenNebula + Cephバンドルは 、Ceph FSファイルシステムなしで、Cephオブジェクトストレージのみを使用してスタックしました。 詳しくは、私がPRしているハブをご覧ください 。
