GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04にCephストレージクラスターをインストールする方法

Cephはオープンソースのストレージプラットフォームであり、高性能、信頼性、スケーラビリティを提供します。これは、オブジェクト、ブロック、およびファイルレベルのストレージのインターフェイスを提供し、単一障害点なしで動作できる無料の分散ストレージシステムです。

このチュートリアルでは、Ubuntu16.04サーバーにCephクラスターをインストールして構築する方法を説明します。 Cephクラスターは次のコンポーネントで構成されています:

  • Ceph OSD(ceph-osd) -データストレージ、データレプリケーション、およびリカバリを処理します。 Cephクラスターには、少なくとも2つのCephOSDサーバーが必要です。このセットアップでは、3台のUbuntu16.04サーバーを使用します。
  • Ceph Monitor(ceph-mon) -クラスターの状態を監視し、OSDマップとCRUSHマップを実行します。ここでは1台のサーバーを使用します。
  • Cephメタデータサーバー(ceph-mds) -これは、Cephをファイルシステムとして使用する場合に必要です。

前提条件

  • Ubuntu16.04サーバーがインストールされた6つのサーバーノード
  • すべてのノードのルート権限

次のホスト名/IP設定を使用します:

ホスト名 IPアドレス

ceph-admin 10.0.15.10
mon1 10.0.15.11
osd1 10. 0.15.21
osd2 br/>クライアント10.0.15.15

ステップ1-すべてのノードを構成する

このステップでは、CephClusterソフトウェアのインストールに備えて6つのノードすべてを構成します。したがって、すべてのノードで以下のコマンドに従って実行する必要があります。また、ssh-serverがすべてのノードにインストールされていることを確認してください。

Cephユーザーを作成する

' cephuserという名前の新しいユーザーを作成します 'すべてのノードで。

useradd -m -s /bin/bash cephuser
passwd cephuser

新しいユーザーを作成したら、 cephuserを構成する必要があります パスワードなしのsudo特権の場合。これは、「cephuser」が最初にパスワードを入力しなくても実行してsudo特権を取得できることを意味します。

以下のコマンドを実行して、それを実現します。

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を介して日付と時刻を設定します。 USプールNTPサーバーを使用します。次に、起動時にNTPサーバーを起動して実行できるようにします。

sudo apt-get install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntp
systemctl start ntp

Open-vm-toolsをインストールします

VMware内ですべてのノードを実行している場合は、この仮想化ユーティリティをインストールする必要があります。

sudo apt-get install -y open-vm-tools

Pythonをインストールして別れました

このチュートリアルでは、ceph-clusterを構築するためのPythonパッケージが必要です。 pythonとpython-pipをインストールします。

sudo apt-get install -y python python-pip parted

Hostsファイルを構成する

vimエディターですべてのノードのhostsファイルを編集します。

vim /etc/hosts

以下に設定を貼り付けます:

10.0.15.10        ceph-admin
10.0.15.11        mon1
10.0.15.21        ceph-osd1
10.0.15.22        ceph-osd2
10.0.15.23        ceph-osd3
10.0.15.15        ceph-client

ホストファイルを保存し、vimエディターを終了します。

これで、サーバーのホスト名間でpingを実行して、ネットワーク接続をテストできます。

ping -c 5 mon1

ステップ2-SSHサーバーを構成する

このステップでは、ceph-adminノードを構成します 。管理ノードは、モニターノードとosdノードを構成するために使用されます。 ceph-adminノードにログインし、「 cephuser」にアクセスします '。

ssh [email protected]
su - cephuser

adminノードは、すべてのクラスターノードのインストールと構成に使用されるため、ceph-adminノードのユーザーは、パスワードなしですべてのノードに接続するための特権を持っている必要があります。 「ceph-admin」ノードの「cephuser」にパスワードなしのSSHアクセスを構成する必要があります。

' cephuserのsshキーを生成します '。

ssh-keygen

パスフレーズを空白/空のままにします。

次に、ssh構成の構成ファイルを作成します。

vim ~/.ssh/config

以下に設定を貼り付けます:

Host ceph-admin
        Hostname ceph-admin
        User cephuser

Host mon1
        Hostname mon1
        User cephuser

Host ceph-osd1
        Hostname ceph-osd1
        User cephuser

Host ceph-osd2
        Hostname ceph-osd2
        User cephuser

Host ceph-osd3
        Hostname ceph-osd3
        User cephuser

Host ceph-client
        Hostname ceph-client
        User cephuser
>

ファイルを保存してvimを終了します。

構成ファイルのアクセス許可を644に変更します。

chmod 644 ~/.ssh/config

次に、ssh-copy-idコマンドを使用してすべてのノードにキーを追加します。

ssh-keyscan ceph-osd1 ceph-osd2 ceph-osd3 ceph-client mon1 >> ~/.ssh/known_hosts
ssh-copy-id ceph-osd1
ssh-copy-id ceph-osd2
ssh-copy-id ceph-osd3
ssh-copy-id mon1

要求されたら、cephuserパスワードを入力します。

次に、ceph-adminノードからosd1サーバーにアクセスして、パスワードなしのログインが機能するかどうかをテストします。

ssh ceph-osd1

ステップ3-Ubuntuファイアウォールを構成する

セキュリティ上の理由から、サーバーのファイアウォールをオンにする必要があります。システムを保護するために、デフォルトのUbuntuファイアウォールであるUfw(Uncomplicated Firewall)を使用することをお勧めします。このステップでは、すべてのノードでufwを有効にしてから、ceph-admin、ceph-mon、およびceph-osdに必要なポートを開きます。

ceph-adminノードにログインし、ufwパッケージをインストールします。

ssh [email protected]
sudo apt-get install -y ufw

ポート80、2003、4505-4506を開き、firewalldをリロードします。

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 2003/tcp
sudo ufw allow 4505:4506/tcp

起動してufwを起動時に起動できるようにします。

sudo ufw enable

ceph-adminノードから、モニターノード「mon1」にログインしてufwをインストールします。

ssh mon1
sudo apt-get install -y ufw

cephモニターノードのポートを開き、ufwを起動します。

sudo ufw allow 22/tcp
sudo ufw allow 6789/tcp
sudo ufw enable

最後に、各osdノードで次のポートを開きます:ceph-osd1、ceph-osd2、ceph-osd3-ポート6800-7300。

ceph-adminから各ceph-osdノードにログインし、ufwをインストールします。

ssh ceph-osd1
sudo apt-get install -y ufw

osdノードのポートを開き、firewalldをリロードします。

sudo ufw allow 22/tcp
sudo ufw allow 6800:7300/tcp
sudo ufw enable

ufwファイアウォールの構成が完了しました。

ステップ4-CephOSDノードを構成します

このチュートリアルでは、3つのOSDノードがあり、これらの各ノードには2つのハードディスクパーティションがあります。

  1. / dev / sda ルートパーティションの場合
  2. / dev / sdb 空のパーティションです-20GB

/ dev / sdbを使用します cephディスク用。 ceph-adminノードから、すべてのOSDノードにログインし、/ dev/sdbパーティションをXFSでフォーマットします。 ファイルシステム。

ssh ceph-osd1
ssh ceph-osd2
ssh ceph-osd3

fdiskコマンドでパーティションスキームを確認してください。

sudo fdisk -l /dev/sdb

partedコマンドを使用して、XFSファイルシステムとGPTパーティションテーブルを使用して/ dev/sdbパーティションをフォーマットします。

sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%

次に、mkfsコマンドを使用してパーティションをXFS形式でフォーマットします。

sudo mkfs.xfs -f /dev/sdb

次に、パーティションを確認すると、XFS / dev/sdbパーティションが表示されます。

sudo fdisk -s /dev/sdb
sudo blkid -o value -s TYPE /dev/sdb

ステップ5-Cephクラスターを構築する

このステップでは、ceph-adminからすべてのノードにCephをインストールします。開始するには、ceph-adminノードにログインします。

ssh [email protected]
su - cephuser

ceph-adminノードにceph-deployをインストールします

最初のステップでは、すでにpythonとpython-pipをシステムにインストールしています。次に、Cephデプロイメントツール' ceph-deployをインストールする必要があります 'pypipythonリポジトリから。

pipコマンドを使用してceph-adminノードにceph-deployをインストールします。

sudo pip install ceph-deploy

注:すべてのノードが更新されていることを確認してください。

ceph-deployツールをインストールしたら、Cephクラスター構成用の新しいディレクトリーを作成します。

新しいクラスタを作成する

新しいクラスタディレクトリを作成します。

mkdir cluster
cd cluster/

次に、「 ceph-deploy」を使用して新しいクラスターを作成します 'モニターノードを定義することによるコマンド'mon1 '。

ceph-deploy new mon1

このコマンドは、クラスターディレクトリにCephクラスター構成ファイル「ceph.conf」を生成します。

ceph.confファイルをvimで編集します。

vim ceph.conf

[グローバル]ブロックの下に、以下の構成を貼り付けます。

# Your network address
public network = 10.0.15.0/24
osd pool default size = 2

ファイルを保存してエディタを終了します。

すべてのノードにCephをインストールする

次に、1つのコマンドでceph-adminノードからすべてのノードにCephをインストールします。

ceph-deploy install ceph-admin ceph-osd1 ceph-osd2 ceph-osd3 mon1

このコマンドは、すべてのノード(mon1、osd1-3、ceph-admin)にCephを自動的にインストールします-インストールには時間がかかります。

次に、モニターノードをmon1ノードにデプロイします。

ceph-deploy mon create-initial

このコマンドはモニターキーを作成します。このcephコマンドでキーを確認してください。

ceph-deploy gatherkeys mon1

クラスターへのOSDSの追加

Cephがすべてのノードにインストールされたら、OSDデーモンをクラスターに追加できます。 OSDデーモンは、ディスク/ dev/sdbにデータとジャーナルパーティションを作成します。

すべてのosdノードで使用可能なディスク/dev/sdbを確認します。

ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3

以前に作成したXFS形式の/dev/sdbが表示されます。

次に、zapオプションを使用してすべてのノードのパーティションテーブルを削除します。

ceph-deploy disk zap ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

このコマンドは、CephOSDノードの/dev/sdb上のすべてのデータを削除します。

次に、すべてのOSDノードを準備し、結果にエラーがないことを確認します。

ceph-deploy osd prepare ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

結果でceph-osd1-3がOSDで使用できるようになったことを確認すると、コマンドは成功しました。

以下のコマンドでOSDをアクティブにします:

ceph-deploy osd activate ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb

これで、OSDSノードのsdbディスクを再度確認できます。

ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3

その結果、/ dev/sdbには現在2つのパーティションがあります。

  1. / dev / sdb1 -Cephデータ
  2. / dev / sdb2 --Ceph Journal

または、OSDノードで直接確認します。

ssh ceph-osd1
sudo fdisk -l /dev/sdb

次に、関連するすべてのノードに管理キーをデプロイします。

ceph-deploy admin ceph-admin mon1 ceph-osd1 ceph-osd2 ceph-osd3

すべてのノードで以下のコマンドを実行して、キーファイルの権限を変更します。

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

Ubuntu16.04上の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があります サーバーとすべてが稼働中 実行中です。45GBの利用可能なディスク容量があるはずです。 -3x15GB CephDataOSDパーティション。

Ubuntu16.04で新しいCephクラスターを正常に構築しました。


Ubuntu
  1. Ubuntu16.04にMariaDBGaleraクラスターをインストールする方法

  2. Ubuntu16.04にRをインストールする方法

  3. Ubuntu18.04にGoをインストールする方法

  1. UbuntuにOdooをインストールする方法

  2. UbuntuにMavenをインストールする方法

  3. Ubuntu16.04でCephストレージクラスターを作成する方法

  1. UbuntuにWineをインストールする方法

  2. Ubuntu20.04にRubyをインストールする方法

  3. UbuntuにPuTTYをインストールする方法