Cephは、広く使用されているオープンソースストレージプラットフォームです。高性能、信頼性、およびスケーラビリティを提供します。 Cephの無料分散ストレージシステムは、オブジェクト、ブロック、およびファイルレベルのストレージ用のインターフェイスを提供します。 Cephは、単一障害点のない分散ストレージシステムを提供するように構築されています。
このチュートリアルでは、CentOS 7にCephクラスターをインストールして構築する方法を説明します。Cephクラスターには、次のCephコンポーネントが必要です。
- Ceph OSD(ceph-osd) -データストア、データレプリケーション、およびリカバリを処理します。 Cephクラスターには、少なくとも2つのCephOSDサーバーが必要です。ここでは3台のCentOS7OSDサーバーを使用します。
- Ceph Monitor(ceph-mon) -クラスターの状態、OSDマップ、およびCRUSHマップを監視します。 1台のサーバーを使用します。
- Cephメタデータサーバー(ceph-mds) -これは、Cephをファイルシステムとして使用するために必要です。
前提条件
- 6つのサーバーノード、すべてCentOS7がインストールされています。
- すべてのノードのルート権限。
このチュートリアルのサーバーは、次のホスト名とIPアドレスを使用します。
ホスト名 IPアドレス
ceph-admin 10.0.15.10
mon1 10.0.15.11
osd1 10.0.15.21
osd2 10. 0.15.21
osd2 10. br/>クライアント10.0.15.15
すべてのOSDノードには2つのパーティションが必要です。1つはルート(/)パーティションで、もう1つは後でCephデータストレージとして使用される空のパーティションです。
このステップでは、Cephクラスターのインストールに備えて6つのノードすべてを構成します。以下のすべてのコマンドに従って、すべてのノードで実行する必要があります。また、ssh-serverがすべてのノードにインストールされていることを確認してください。
Cephユーザーを作成する
' cephuserという名前の新しいユーザーを作成します 'すべてのノードで。
useradd -d / home / cephuser -m cephuser
passwd cephuser
新しいユーザーを作成したら、「cephuser」のsudoを構成する必要があります。彼はrootとしてコマンドを実行し、パスワードなしでroot権限を取得できる必要があります。
以下のコマンドを実行して、ユーザーのsudoersファイルを作成し、sedを使用して/ etc/sudoersファイルを編集します。
echo "cephuser ALL =(root)NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser>
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/ Defaults requiretty /#Defaults requiretty' / g / etc / sudoers
NTPのインストールと構成
NTPをインストールして、すべてのノードで日付と時刻を同期します。 ntpdateコマンドを実行して、NTPプロトコルを介して日付と時刻を設定します。uspoolNTPサーバーを使用します。次に、起動時にNTPサーバーを起動して実行できるようにします。
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd .service
Open-vm-toolsをインストール
VMware内ですべてのノードを実行している場合は、この仮想化ユーティリティをインストールする必要があります。それ以外の場合は、この手順をスキップしてください。
yum install -y open-vm-tools
sedストリームエディターでSELinux構成ファイルを編集して、すべてのノードでSELinuxを無効にします。
sed -i's / SELINUX =enforcing / SELINUX =disable / g'/ etc / selinux / config
vimエディターですべてのノードの/etc/ hostsファイルを編集し、すべてのクラスターノードのIPアドレスとホスト名を含む行を追加します。
vim / etc / hosts
以下に設定を貼り付けます:
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 osd1
10.0.15.22 osd2
10.0.15.23 5.1 <5 /> 10 os d / pre>ファイルを保存してvimを終了します。
これで、サーバー間でホスト名を使用してpingを実行し、ネットワーク接続をテストできます。例:
ping -c 5 mon1
ステップ2-SSHサーバーを構成する このステップでは、ceph-adminノードを構成します 。管理ノードは、モニターノードとosdノードを構成するために使用されます。 ceph-adminノードにログインし、「 cephuser」になります '。
ssh[メール保護]
su --cephuseradminノードは、すべてのクラスターノードのインストールと構成に使用されるため、ceph-adminノードのユーザーは、パスワードなしですべてのノードに接続するための特権を持っている必要があります。 「ceph-admin」ノードの「cephuser」にパスワードなしのSSHアクセスを構成する必要があります。
' cephuserのsshキーを生成します '。
ssh-keygenパスフレーズを空白/空のままにします。
次に、ssh構成の構成ファイルを作成します。
vim〜/ .ssh / config以下に構成を貼り付けます:
ホストceph-admin
ホスト名ceph-admin
ユーザーcephuser
ホストmon1
ホスト名mon1
ユーザーcephuser
ホストosd1
ホスト名osd1
ユーザーcephuser
ホストosd2
ホスト名osd2
ユーザーcephuser
ホストosd3
>ホスト名osd3
ユーザーcephuser
ホストクライアント
ホスト名クライアント
ユーザーcephuserファイルを保存します。
構成ファイルの権限を変更します。
chmod 644〜/ .ssh / config次に、ssh-copy-idコマンドを使用してSSHキーをすべてのノードに追加します。
ssh-keyscan osd1 osd2 osd3 mon1 client>>〜/ .ssh / known_hosts
ssh-copy-id osd1
ssh-copy-id osd2
ssh-copy-id osd3
ssh-copy-id mon1
ssh-copy-idクライアント要求されたら、「cephuser」パスワードを入力します。
終了したら、ceph-adminノードからosd1サーバーにアクセスしてみてください。
ssh osd1
ステップ3-Firewalldを設定する システムを保護するためにFirewalldを使用します。このステップでは、すべてのノードでfirewaldを有効にしてから、ceph-admon、ceph-mon、およびceph-osdに必要なポートを開きます。
ceph-adminノードにログインし、firewalldを起動します。
ssh[メール保護]
systemctl start Firewalld
systemctl enable Firewalldポート80、2003、4505-4506を開き、ファイアウォールをリロードします。
sudo Firewall-cmd --zone =public --add-port =80 / tcp --permanent
sudo Firewall-cmd --zone =public --add-port =2003 / tcp --permanent
sudo Firewall-cmd --zone =public --add-port =4505-4506 / tcp --permanent
sudo Firewall-cmd --reloadceph-adminノードから、モニターノード「mon1」にログインしてfirewalldを起動します。
ssh mon1
sudo systemctl start Firewalld
sudo systemctl enable FirewalldCephモニターノードで新しいポートを開き、ファイアウォールをリロードします。
sudo Firewall-cmd --zone =public --add-port =6789 / tcp --permanent
sudo Firewall-cmd --reload最後に、osdノード(osd1、osd2、os3)のそれぞれでポート6800-7300を開きます。
ceph-adminノードから各osdノードにログインします。
ssh osd1
sudo systemctl start Firewalld
sudo systemctl enable Firewalldポートを開き、ファイアウォールをリロードします。
sudo Firewall-cmd --zone =public --add-port =6800-7300 / tcp --permanent
sudo Firewall-cmd --reloadファイアウォール設定が完了しました。
ステップ4-CephOSDノードを構成します このチュートリアルでは、3つのOSDノードがあり、各ノードには2つのパーティションがあります。
- / dev / sda ルートパーティション用。
- / dev / sdb 空のパーティションです-私の場合は30GBです。
/ dev / sdbを使用します Cephディスク用。 ceph-adminノードから、すべてのOSDノードにログインし、/ dev/sdbパーティションをXFSでフォーマットします。 。
ssh osd1
ssh osd2
ssh osd3fdiskコマンドでパーティションを確認します。
sudo fdisk -l / dev / sdbpartedコマンドを使用して、XFSファイルシステムとGPTパーティションテーブルを使用して/ dev/sdbパーティションをフォーマットします。
sudo parted -s / dev / sdb mklabel gpt mkpart primary xfs 0%100%
sudo mkfs.xfs / dev / sdb -fここでパーティションを確認すると、xfs / dev/sdbパーティションが取得されます。
sudo blkid -o value -s TYPE / dev / sdb
ステップ5-Cephクラスターを構築する このステップでは、ceph-adminノードからすべてのノードにCephをインストールします。
ceph-adminノードにログインします。
ssh[メール保護]
su --cephuser
ceph-adminノードにceph-deployをインストールします
Cephリポジトリを追加し、Cephデプロイメントツール' ceph-deployをインストールします 'yumコマンドを使用します。
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
sudo yum update -y &&sudo yum ceph-deploy-yをインストールしますすべてのノードが更新されていることを確認してください。
ceph-deployツールをインストールしたら、cephクラスター構成用の新しいディレクトリを作成します。
新しいクラスター構成の作成 新しいクラスタディレクトリを作成します。
mkdir cluster
cd cluster /次に、「 ceph-deploy」を使用して新しいクラスター構成を作成します 'コマンド、モニターノードを' mon1に定義します '。
ceph-deploy new mon1このコマンドは、クラスターディレクトリにCephクラスター構成ファイル「ceph.conf」を生成します。
ceph.confファイルをvimで編集します。
vim ceph.conf[グローバル]ブロックの下に、以下の構成を貼り付けます。
#ネットワークアドレス
public network =10.0.15.0/24
osd pool default size =2ファイルを保存してvimを終了します。
すべてのノードにCephをインストールする 次に、ceph-adminノードから他のすべてのノードにCephをインストールします。これは、1つのコマンドで実行できます。
ceph-deploy install ceph-admin mon1 osd1 osd2 osd3このコマンドは、すべてのノード(mon1、osd1-3、ceph-admin)にCephを自動的にインストールします-インストールには時間がかかります。
次に、mon1ノードにceph-monをデプロイします。
ceph-deploy mon create-initialこのコマンドは、モニターキーを作成し、「ceph」コマンドを使用してキーを確認および取得します。
ceph-deploy keepkeys mon1
クラスターへのOSDSの追加 Cephがすべてのノードにインストールされたら、OSDデーモンをクラスターに追加できます。 OSDデーモンは、ディスク/ dev/sdbにデータとジャーナルパーティションを作成します。
/ dev/sdbパーティションがすべてのOSDノードで使用可能であることを確認します。
ceph-deploy disk list osd1 osd2 osd3
XFS形式の/dev/sdbディスクが表示されます。
次に、zapオプションを使用してすべてのノードの/ dev/sdbパーティションテーブルを削除します。
ceph-deploy disk zap osd1:/ dev / sdb osd2:/ dev / sdb osd3:/ dev / sdbこのコマンドは、CephOSDノードの/dev/sdb上のすべてのデータを削除します。
次に、すべてのOSDSノードを準備します。結果にエラーがないことを確認してください。
ceph-deploy osd prepare osd1:/ dev / sdb osd2:/ dev / sdb osd3:/ dev / sdbosd1-3がOSDの使用結果の準備ができていることがわかる場合は、展開は成功しています。
以下のコマンドでOSDをアクティブにします:
ceph-deploy osd activate osd1:/ dev / sdb1 osd2:/ dev / sdb1 osd3:/ dev / sdb1続行する前に、出力にエラーがないか確認してください。これで、listコマンドを使用してOSDノードのsdbディスクを確認できます。
ceph-deploy disk list osd1 osd2 osd3
その結果、/ dev/sdbに2つのパーティションが作成されました。
- / dev / sdb1 -Cephデータ
- / dev / sdb2 --Ceph Journal
または、fdiskを使用してOSDノードで直接確認できます。
ssh osd1
sudo fdisk -l / dev / sdb
次に、関連するすべてのノードに管理キーをデプロイします。
ceph-deploy admin ceph-admin mon1 osd1 osd2 osd3すべてのノードで以下のコマンドを実行して、キーファイルの権限を変更します。
sudo chmod 644 /etc/ceph/ceph.client.admin.keyringCentOS7上のCephクラスターが作成されました。
ステップ6-Cephセットアップのテスト 手順4では、新しいCephクラスターをインストールして作成し、クラスターにOSDSノードを追加しました。これで、クラスターをテストして、クラスターのセットアップにエラーがないことを確認できます。
ceph-adminノードから、cephモニターサーバー' mon1にログインします。 '。
ssh mon1以下のコマンドを実行して、クラスタの状態を確認します。
sudo ceph health次に、クラスターのステータスを確認します。
sudo ceph -sそして、以下の結果が表示されるはずです:
CephのヘルスがOKであることを確認してください モニターノード'mon1 'IPアドレス付き'10.0.15.11 '。 3 OSD が必要です サーバーとすべてが稼働中である必要があります 実行中です。約75GBの利用可能なディスクがあるはずです。 -3x25GBCephデータパーティション。
おめでとうございます。新しいCephクラスターが正常に構築されました。
Cephチュートリアルの次のパートでは、Cephをブロックデバイスとして使用する方法、またはCephをファイルシステムとしてマウントする方法を紹介します。
Cent OS