15分でわかるCeph FS分散ファイルシステム

画像

Ceph FS分散ファイルシステムを上げるのに数分しかかかりません

クイックリファレンス

Cephは、柔軟でスケーラブルなペタバイトストレージのオープンソース開発です。 基礎は、オブジェクトストレージ内の数十個のサーバーのディスクスペースを結合することです。これにより、柔軟な複数の擬似ランダムデータの冗長性が実現します。 Ceph開発者は、このオブジェクトストアをさらに3つのプロジェクトで補完します。


例の説明

私の小さな例では、ストレージとして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しているハブをご覧ください

Source: https://habr.com/ru/post/J179823/


All Articles