Cephはオープンソースのストレージプラットフォームであり、高性能、信頼性、スケーラビリティを提供します。これは、単一障害点なしでオブジェクト、ブロック、およびファイルレベルのストレージへのインターフェイスを提供する無料の分散ストレージシステムです。
これは、Cephチュートリアルシリーズの第3部です。最初のパートでは、CentOS7で複数のノードを使用して「Cephクラスター」を構築する方法を説明しました。 2番目のパートは、CentOS 7でCephをブロックデバイスとして使用する方法を示すガイドです。この3番目のパートでは、CentOS7にクライアントとしてCephをファイルシステムとしてマウントする方法を示します。
前提条件
- Cephクラスター-1つのCeph-adminノード、1つのMoinitorノード(ceph-mon)、3つのCeph-osdノード(パート1を参照)。
- Client2-CentOS 7サーバー(パート2を参照)。
- root権限
この最初のステップでは、クライアントの基本インストールを行います。これは、他のクラスターノードで使用した手順と同じです。 cephuserという名前の新しいユーザーを作成します ボックスで、時刻をntpdateと同期し、cephuserなどのsudoパスワードなしを構成します。それでは始めましょう...
rootユーザーとしてSSHを使用してclient2ノードに接続します:
ssh [email protected]
rootアクセスでサーバーにログインしたので、新しいcephuserを作成できます。
useradd -m -d /home/cephuser cephuser
passwd cephuser
TYPE YOUR NEW PASSWORD
新しいユーザーが作成されたら、sudoersディレクトリに新しい構成ファイルを作成して、ユーザーのsudoパスワードなしを有効にします。
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser>
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
chmod 0440 /etc/sudoers.d/cephuser
次に、NTP、ntpdateコマンドラインツール、およびopen-vmツールをインストールします。次に、システム時刻を更新してntpdateと同期します。
yum install -y open-vm-tools
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.service
SELinuxを無効にして、ホストのファイルを編集します。
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
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 osd3
10.0.15.15 client
10.0.15.16 client2
hostsファイルを保存し、エディターを終了します。次に、ceph-adminノードにpingを実行して、接続とホスト名の設定をテストします。
ping -c 3 ceph-admin
結果として、ceph-adminノードのIPアドレスが表示されます。
ceph-commonパッケージは、Cephリポジトリーからインストールできます。これには、CephStorageClusterをマウントして操作するためのCephユーティリティが含まれています。
ceph-commonパッケージのインストールを続行する前に、epel-repositoryとCephリポジトリを追加する必要があります。
sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
システムを更新し、Ceph共通ユーティリティをインストールします。
sudo yum -y update
sudo yum -y install ceph-common
次に、ceph-adminノードに構成を追加する必要があります。
このステップでは、sshキー(パスワードなし)を使用してadminからclient2ノードに接続できるようにクラスターを構成します。
rootとしてceph-adminノードに接続し、suを使用してcephuserにログインします。
ssh [email protected]
su - cephuser
ssh構成ファイルを編集し、新しいclient2構成セクションを定義します。
vim ~/.ssh/config
ファイルの最後に、以下の構成を貼り付けます。
Host client2
Hostname client2
User cephuser
次に、クライアントノードのホスト構成行をceph-adminノードの「/ etc/hosts」ファイルに追加します。
sudo vim /etc/hosts
以下のホスト構成をファイルの最後に貼り付けます。
10.0.15.16 client2
ホストファイルを保存して、エディターを終了します。
次に、ceph-adminノードのsshキーをclient2ノードに追加します。
ssh-keyscan client2 >> ~/.ssh/known_hosts
ssh-copy-id client2
TYPE THE client2 PASSWORD
ceph-adminキーが追加されました。これで、ceph-adminノードからのパスワードなしでclient2ノードにアクセスできます。
ssh client2
CephFSを実行してマウントする場合は、cephメタデータサーバー(Ceph MDS)が必要です。 CephMDSはOSDノードで実行されています。 ceph-adminノードからのceph-deployコマンドを使用して、CephMDSをOSDノードにインストールできます。
ceph-adminノードにログインして、cephuserになります。
ssh [email protected]
su - cephuser
クラスタディレクトリに移動し、ceph-deployコマンドを実行して、新しいcephメタデータサーバー(Ceph MDS)を作成します。 'osd1'ノードをメタデータサーバーとして使用します。
cd cluster/
ceph-deploy mds create osd1
osd1ノードにMDSサーバーを作成した後、sshを使用してノードに接続する必要があります。
ssh osd1
次に、MDSサーバー用の新しいプールを作成します。少なくとも2つのプール(cephfs_dataとcephfs_metadata)が必要です。
'osd1'ノードに新しいプールを作成します。
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
新しいプールの準備が整いました。これで、cephfs_dataとcephfs_metadataという名前のプールを使用して新しいファイルシステムを作成できます。
ceph fs new cephfs cephfs_metadata cephfs_data
cephfs=ファイルシステム名。
この手順をエラーなしで完了したら、以下のコマンドを使用してMDSサーバーを確認します。
MDSサーバーのリストを確認してください:
ceph fs ls
これで、ファイルシステム名が「cephfs」、メタデータプールが「cephfs_metadata」、データプールが「cephfs_data」であることがわかります。
MDSステータスを表示する:
ceph mds stat
続行する前に、MDSが起動してアクティブになっていることを確認してください。
CephMDSサーバーは「osd1」ノードに作成されています。これで、CephFSを使用できるようになりました。このステップでは、mountコマンドを使用してCephFSをファイルシステムとしてclient2ノードにマウントします。
次のステップに進む前に、client2ノードのcephリポジトリからceph-fuseをインストールする必要があります。
sudo yum -y install ceph-fuse
インストールが完了したら、ユーザーのキーをコピーします。デフォルトの構成では、cephx認証が有効になっています。デフォルトのユーザーは「admin」です。
scpコマンドを使用してMDSサーバーノード「osd1」からclient2ノードにキーをコピーしてから、キーの権限を変更します。
ssh [email protected] 'sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring' > ceph.key
chmod 600 ceph.key
次に、新しいcephfsディレクトリを作成し、CephFSをそのディレクトリにマウントします。
sudo mkdir -p /mnt/cephfs
sudo mount -t ceph mon1:6789:/ /mnt/cephfs -o name=admin,secretfile=ceph.key
注:
デフォルトのユーザー名=admin
secretfile=MDSノードosd1のceph.key
リストにマウントされたタイプ「ceph」の新しいファイルシステムが表示されます。
sudo df -hT
ファイルシステムをアンマウントするには、umountコマンドユーティリティを使用します。
umount /mnt/cephfs
CephFSをファイルシステムとして正常にマウントした後、CephFSをFuse(USErspaceのファイルシステム)としてマウントします。このセットアップでは、構成ファイル「ceph.conf」とキーを監視ノード「mon1」からコピーする必要があります。
client2ノードに新しいcephディレクトリを作成し、構成ファイルとキーをコピーします。
sudo mkdir -p /etc/ceph/
sudo scp [email protected]:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
sudo scp [email protected]:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
ファイルの権限を変更します。
sudo chmod 644 /etc/ceph/ceph.conf
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
次に、新しいヒューズディレクトリを作成し、CephFSをヒューズとして「/ mnt/fuse」ディレクトリにマウントします。
sudo mkdir -p /mnt/fuse
sudo ceph-fuse -m mon1:6789 /mnt/fuse
エラーがないことを確認し、CephFSがマウントされていることを確認します。
sudo df -hT
CephFSヒューズをアンマウントするには、killコマンドを使用します。
sudo ps -aux | grep ceph-fuse
kill -2 PID
このステップでは、fstabを使用してCephFSを永続的にマウントします。 / etc / fstabを編集し、mountコマンドを使用してカーネルドライバーでCephFSをマウントするための構成を追加します。
fstabファイルを編集します。
sudo vim /etc/fstab
以下の構成をファイルの最後に貼り付けます:
mon1:6789:/ /mnt/cephfs ceph name=admin,secretkey=/home/cephuser/ceph.key,_netdev,noatime 0 0
ファイルを保存してvimを終了します。
mount -aコマンドを使用してfstabからすべてのディスクをマウントしてから、使用可能なすべてのディスクを一覧表示します。
sudo mount -a
sudo df -hT
最後に、システムを再起動し、使用可能なディスクをチェックして、構成が再起動しても安全であることを確認します。
reboot
sudo df -hT
CephFSがfstabで自動的にマウントされていることがわかります。