GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にCephクラスターをインストールおよび構成するためのクイックガイド

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クラスターからクライアントにブロックストレージを割り当てる方法について説明し、クライアントがブロックストレージにアクセスする方法を確認します。


Cent OS
  1. CentOS7にNginxをインストールして構成する方法

  2. CentOS7にRedisをインストールして設定する方法

  3. CentOS7にGitLabをインストールして構成する方法

  1. CentOS7にRedmineをインストールして設定する方法

  2. CentOS8にRedisをインストールして設定する方法

  3. CentOS8にSambaをインストールして設定する方法

  1. CentOS7にGitLabCEをインストールして構成する方法

  2. CentOS7にZabbixをインストールして設定する方法

  3. CentOS7にMySQLクラスターをインストールして構成する方法