Ceph 無料でオープンソースの分散ストレージ ブロックストレージ、オブジェクトストレージ、ファイルストレージを簡単に提供および管理できるソリューション。 Cephストレージソリューションは、一元化されたストレージを提供するために従来のITインフラストラクチャで使用できますが、これとは別に、プライベートクラウド( OpenStack )でも使用されます。 &クラウドスタック )。 Red Hatでは、OpenStackCephがシンダーバックエンドとして使用されます。
この記事では、CentOS 7サーバーにCephCluster(Mimic)をインストールして構成する方法を示します。
Ceph Clusterの主なコンポーネントは、次のとおりです。
- モニター(ceph-mon) :名前が示すように、cephモニターノードはクラスターの状態、OSDマップおよびクラッシュマップを監視します
- OSD(Ceph-osd) :これらはクラスターの一部であり、データストア、データレプリケーション、およびリカバリ機能を提供するノードです。 OSDは、ノードを監視するための情報も提供します。
- MDS(Ceph-mds) :これはcephメタデータサーバーであり、ブロックストレージなどのcephファイルシステムのメタデータを保存します。
- Cephデプロイメントノード :Cephクラスターのデプロイに使用され、Ceph-adminまたはCeph-utilityノードとも呼ばれます。
マイラボのセットアップの詳細:
- Cephデプロイメントノード :(最小CentOS 7、RAM:4 GB、vCPU:2、IP:192.168.1.30、ホスト名:ceph-controller)
- OSDまたはCephCompute1 :(最小CentOS 7、RAM:10 GB、vCPU:4、IP:192.168.1.31、ホスト名:ceph-compute01)
- OSDまたはCephCompute2 :(最小CentOS 7、RAM:10 GB、vCPU:4、IP:192.168.1.32、ホスト名:ceph-compute02)
- Cephモニター :(最小CentOS 7、RAM:10 GB、vCPU:4、IP:192.168.1.33、ホスト名:ceph-monitor)
注: すべてのノードで、2つのNIC(eth0とeth1)を接続し、VLAN192.168.1.0/24からのeth0IPにが割り当てられています。 eth1では、VLAN 192.168.122.0/24からのIPが割り当てられ、インターネットアクセスを提供します。
インストールと構成の手順に進みましょう:
ステップ:1)/ etc / hostsファイル、NTPを更新し、ユーザーを作成し、すべてのノードでSELinuxを無効にします
すべてのノードの/etc/ hostsファイルに次の行を追加して、ホスト名を介してこれらのノードにもアクセスできるようにします。
192.168.1.30 ceph-controller 192.168.1.31 ceph-compute01 192.168.1.32 ceph-compute02 192.168.1.33 ceph-monitor
NTPサーバーを使用してすべてのCephノードを構成し、すべてのノードが同じ時間を持ち、時間のずれがないようにします。
~]# yum install ntp ntpdate ntp-doc -y ~]# ntpdate europe.pool.ntp.org ~]# systemctl start ntpd ~]# systemctl enable ntpd
「cephadm」という名前のユーザーを作成します 」をすべてのノードで使用し、このユーザーをcephのデプロイと構成に使用します
~]# useradd cephadm && echo "[email protected]#" | passwd --stdin cephadm
次に、sudoを介してユーザーcephadmに管理者権限を割り当て、次のコマンドを実行します。
~]# echo "cephadm ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephadm ~]# chmod 0440 /etc/sudoers.d/cephadm
under sedコマンドを使用してすべてのノードでSELinuxを無効にします。cephの公式サイトでも、SELinuxを無効にすることをお勧めします。
~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
アンダーコマンドを使用して、すべてのノードを再起動します。
~]# reboot
ステップ:2Ceph管理者からすべてのOSDおよびモニターノードへのパスワードなし認証を構成します
Ceph-adminノードから、「 ceph-deploy」と呼ばれるユーティリティを使用します 「、各cephノードにログインし、cephパッケージをインストールして、必要なすべての構成を実行します。 Cephノードにアクセスしている間、cephノードのクレデンシャルを入力するように求められることはありません。そのため、ceph-adminノードからすべてのcephノードにパスワードなしまたはキーベースの認証を構成する必要がありました。
Ceph-adminノード(ceph-controller)からcephadmuserとして以下のコマンドを実行します。パスフレーズは空のままにします。
[[email protected] ~]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/cephadm/.ssh/id_rsa): Created directory '/home/cephadm/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/cephadm/.ssh/id_rsa. Your public key has been saved in /home/cephadm/.ssh/id_rsa.pub. The key fingerprint is: 93:01:16:8a:67:34:2d:04:17:20:94:ad:0a:58:4f:8a [email protected] The key's randomart image is: +--[ RSA 2048]----+ |o.=+*o+. | | o.=o+.. | |.oo++. . | |E..o. o | |o S | |. . | | | | | | | +-----------------+ [[email protected] ~]$
次に、ssh-copy-idコマンドを使用してすべてのcephノードにキーをコピーします
[[email protected] ~]$ ssh-copy-id [email protected] [[email protected] ~]$ ssh-copy-id [email protected] [[email protected] ~]$ ssh-copy-id [email protected]
ファイル「〜/ .ssh/config」に以下を追加することをお勧めします
[[email protected] ~]$ vi ~/.ssh/config Host ceph-compute01 Hostname ceph-compute01 User cephadm Host ceph-compute02 Hostname ceph-compute02 User cephadm Host ceph-monitor Hostname ceph-monitor User cephadm
ファイルを保存して終了します。
[email protected] ~]$ chmod 644 ~/.ssh/config [[email protected] ~]$
注: 上記のコマンドで、セットアップに適したユーザー名とホスト名を置き換えます。
手順:3)OSDおよびモニターノードのファイアウォールルールを構成します
OSファイアウォールが有効になっていて、すべてのcephノードで実行されている場合は、以下のファイアウォールルールを構成する必要があります。構成しない場合は、この手順をスキップできます。
Ceph-adminノードで、underコマンドを使用して次のファイアウォールルールを構成します。
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
OSDまたはCephComputeNodesにログインし、firewall-cmdコマンドを使用してファイアウォールルールを構成します。
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$ [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
Ceph Monitorノードにログインし、firewalldコマンドを実行してファイアウォールルールを構成します。
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
手順:4)Ceph管理ノードからCephクラスターをインストールして構成します
「cephadm」ユーザーとしてCeph-adminノードにログインし、最新バージョンのCephyumリポジトリーを有効にします。この記事を書いている時点で、MimicはCephの最新バージョンです
[[email protected] ~]$ sudo rpm -Uvh https://download.ceph.com/rpm-mimic/el7/noarch/ceph-release-1-1.el7.noarch.rpm
EPELリポジトリも有効にします
[[email protected] ~]$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
次のyumコマンドを使用してCeph-deployユーティリティをインストールします
[[email protected] ~]$ sudo yum update -y && sudo yum install ceph-deploy python2-pip -y
「ceph_cluster」という名前のディレクトリを作成します 「、このディレクトリにはすべてのクラスタ構成が含まれます
[[email protected] ~]$ mkdir ceph_cluster [[email protected] ~]$ cd ceph_cluster/ [[email protected] ceph_cluster]$
ここで、ceph-adminノードでceph-deployユーティリティを実行してクラスター構成を生成します。これで、ceph-monitorノードがcephクラスターのモニターノードとして登録されます。 Ceph-deployユーティリティは、「 ceph.conf」も生成します 」が現在の作業ディレクトリにあります。
[[email protected] ceph_cluster]$ ceph-deploy new ceph-monitor
上記のコマンドの出力は次のようになります:
ceph.conf のグローバルディレクティブでネットワークアドレス(パブリックネットワーク)を更新します ファイル、ここでパブリックネットワークはCephノードが相互に通信するネットワークであり、外部クライアントもこのネットワークを使用してCephストレージにアクセスします。
[[email protected] ceph_cluster]$ vi ceph.conf [global] fsid = b1e269f0-03ea-4545-8ffd-4e0f79350900 mon_initial_members = ceph-monitor mon_host = 192.168.1.33 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx public network = 192.168.1.0/24
ファイルを保存して終了します。
次に、ceph-adminノードからすべてのノードにcephをインストールし、「 ceph-deploy install」を実行します。 ”コマンド
[[email protected] ~]$ ceph-deploy install ceph-controller ceph-compute01 ceph-compute02 ceph-monitor
上記のコマンドは、他の依存関係とともにcephをすべてのノードに自動的にインストールします。これは、cephノードのインターネット速度によっては時間がかかる場合があります。
上記の「ceph-deployinstall」の出力 ”コマンド出力は次のようになります:
「ceph-deploymoncreate-initial」を実行します 」ceph-adminノードからのコマンド。初期モニターをデプロイしてキーを収集します。
[[email protected] ~]$ cd ceph_cluster/ [[email protected] ceph_cluster]$ ceph-deploy mon create-initial
「ceph-deployadmin」を実行します 」コマンドを使用して、構成ファイルをceph-adminノードからすべてのcephノードにコピーし、モニターアドレスを指定せずにcephcliコマンドを使用できるようにします。
[[email protected] ceph_cluster]$ ceph-deploy admin ceph-controller ceph-compute01 ceph-compute02 ceph-monitor
マネージャーデーモンをインストールします 次のコマンドを使用して、Ceph Compute Nodes(OSD)上のCeph-adminノードから
[[email protected] ceph_cluster]$ ceph-deploy mgr create ceph-compute01 ceph-compute02
ステップ:5)OSDディスクをクラスターに追加する
私のセットアップでは、2つのディスクを接続しました / dev / vdb & / dev / vdc 両方の計算ノードで、計算ノードからのこれら4つのディスクをOSDディスクとして使用します。
ceph-deployユーティリティがこれらのディスクを認識できるかどうかを確認しましょう。 「ceph-deploydiskリスト」を実行します ”ceph-adminノードからのコマンド
[[email protected] ceph_cluster]$ ceph-deploy disk list ceph-compute01 ceph-compute02
上記のコマンドの出力:
注: これらのディスクがどこにも使用されておらず、データが含まれていないことを確認してください
ディスクからデータをクリーンアップして削除するには、次のコマンドを使用します。
[[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute01 /dev/vdb [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute01 /dev/vdc [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute02 /dev/vdb [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute02 /dev/vdc
次に、次のコマンドを使用して、これらのディスクをOSDとしてマークします
[[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdb ceph-compute01 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdc ceph-compute01 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdb ceph-compute02 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdc ceph-compute02
ステップ:6)Cephクラスターのステータスを確認する
「cephヘルス」を使用してCephクラスターのステータスを確認します 」と「ceph-s 「、これらのコマンドをモニターノードから実行します
[[email protected] ~]# ceph health HEALTH_OK [[email protected] ~]# [[email protected] ~]# ceph -s cluster: id: 4f41600b-1c5a-4628-a0fc-2d8e7c091aa7 health: HEALTH_OK services: mon: 1 daemons, quorum ceph-monitor mgr: ceph-compute01(active), standbys: ceph-compute02 osd: 4 osds: 4 up, 4 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 4.0 GiB used, 76 GiB / 80 GiB avail pgs: [[email protected] ~]#
上記の出力でわかるように、cephクラスターの正常性はOKであり、4つのOSDがあります。これを除けば、これらのOSDはすべて稼働しており、クラスターで80GBのディスク容量が利用可能であることがわかります。
これにより、CentOS7システムにCephClusterが正常にインストールおよび構成されたことを確認します。これらの手順が、ご使用の環境にcephをインストールするのに役立つ場合は、フィードバックとコメントを共有してください。
次の記事では、Cephクラスターからクライアントにブロックストレージを割り当てる方法について説明し、クライアントがブロックストレージにアクセスする方法を確認します。