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しているハブをご覧ください








All Articles