目次
1、 Cephの紹介
Cephは、[Object Storage](https://cloud.tencent.com/product/cos?from=10680)、ブロックデバイス、ファイルシステムなどのオープンソースの分散ストレージシステムです。信頼性が高く、インストールが簡単で、管理が簡単で、大量のデータを簡単に管理できます。 Cephストレージクラスターは、エンタープライズレベルのストレージの機能を備えており、多数のノードを編成し、ノードが相互に通信してデータを複製し、データを動的に再配布して、高可用性の分散ストレージ機能を実現します。 7年間の開発を経て、Cephはますます完璧になり、より多くの参加者を魅了してきており、今後さらに人気が高まると思います。
2、 環境とソフトウェアの準備
このデモンストレーション環境では、仮想マシンLinux Centos7で操作しており、ストレージクラスターは仮想マシンを介して構築されています。インストールされているソフトウェアとバージョンは次のとおりです。
注:この記事では、Cephストレージクラスターを構築するプロセスのみを取り上げます。Cephのアーキテクチャや各コンポーネントの詳細については詳しく説明しません。詳細については、[公式システム構造](http://docs.ceph.org.cn/architecture/)を参照してください。 [Ceph公式ドキュメント](http://docs.ceph.org.cn/start/quick-start-preflight/)では、Cephの基本機能を調べるために、ceph-deploy管理ノードと3ノードのCephストレージクラスターをインストールすることを推奨しています。構造図は次のとおりです。
ただし、これはマシンのメモリ制限によって制限され、仮想マシンをあまり開くことができないため、ここではmon.node1ノードが1つ少なくなり、ノードの監視機能をadminノードノードに移行したため、クラスター構造図は次のようになります。
Ceph分散ストレージクラスターは、Ceph Monitor、Ceph OSD、Ceph MDSの3つの主要コンポーネントで構成されています。後でオブジェクトストレージとブロックストレージを使用する場合、MDSをインストールする必要はなく、Cephfs [ファイルストレージ](https://cloud.tencent.com/product/cfs?from=10680)を使用する場合に限ります。インストールする必要があります。ここでは、今のところMDSをインストールしません。
3、 セフプリフライト
3.1 ノードホストの構成
後のインストールを容易にし、sshで各ノードを接続するために、最初に各ノードのホスト名を変更し、次のようにホストを構成します。
admin-node(10.222.77.213)
$ cat /etc/hostname
admin
$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.222.77.213 admin
10.222.77.242 node0
10.222.77.253 node1
-----------------------------
node0(10.222.77.242)
$ cat /etc/hostname
admin
$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.222.77.242 node0
10.222.77.213 admin
10.222.77.253 node1
-----------------------------
node1(10.222.77.253)
$ cat /etc/hostname
admin
$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.222.77.253 node1
10.222.77.213 admin
10.222.77.242 node0
**3.2 デプロイメントツールceph-deploy **をインストールします
Cephは、Cephクラスターのインストールを容易にする展開ツールceph-deployを提供します。これは、adminノードノードに対応するceph-deployノードにインストールするだけで済みます。 Cephリポジトリをceph-deploy管理ノードに追加してから、ceph-deployをインストールします。システムはCentos7バージョンであるため、構成は次のとおりです。
# ceph-deploy(admin-node)実行時
# Yumは他の依存パッケージを構成します
$ sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/&& sudo yum install --nogpgcheck -y epel-release && sudo rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7&& sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
# Cephソースを追加
$ sudo vim /etc/yum.repos.d/ceph.repo
[ Ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-jewel/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
# cephをインストールします-deploy
$ sudo yum update && sudo yum install ceph-deploy
3.3 NTPとOpensshをインストールします
公式の推奨事項は、クロックドリフトによる誤動作を回避するために、すべてのCephノード(特にCeph Monitorノード)にNTPサービスをインストールすることです。
# yum install ntp
sudo yum install ntp ntpdate ntp-doc
# システムクロックの校正
ntpdate 0.cn.pool.ntp.org
以降の操作では、ceph-deployノードはsshを使用して各ノードにログインし、cephのインストールと構成の作業を完了する必要があるため、各ノードでSSHサービスが使用可能であることを確認してください。
# yum install openssh
$ sudo yum install openssh-server
# sshバージョンを表示
$ ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
3.4 Cephデプロイメントユーザーを作成する
ceph-deployツールは、通常のユーザーとしてCephノードにログインする必要があります。このユーザーは、パスワードを入力せずにソフトウェアと構成ファイルをインストールする必要があるため、パスワードなしでsudoを使用する権利があります。公式の推奨事項は、すべてのCephノードでceph-deploy用の特定のユーザーを作成し、「ceph」という名前を使用しないことです。ここでは便宜上、アカウント cephd
を特定のユーザーとして使用し、各ノード(admin-node、node0、node1)はアカウントを作成し、sudo権限を持っている必要があります。
# Cephクラスターの各ノードで次の操作を実行します
# ceph固有のユーザーを作成する
$ sudo useradd -d /home/cephd -m cephd
$ sudo passwd cephd
# sudo権限を追加します
$ echo "cephd ALL = (root) NOPASSWD:ALL"| sudo tee /etc/sudoers.d/cephd
$ sudo chmod 0440/etc/sudoers.d/cephd
次に、ceph-deployノード(admin-node)で、cephdユーザーに切り替え、SSHキーを生成し、その公開キーを各Cephノードに配布し、cephdアカウントを使用して生成するように注意し、パスワードの入力を求められたら、Enterキーを押します。 、各ノードへのパスワードなしのログインが必要なため。
# ceph-deploy(admin-node)実行時
# sshキーを生成する
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key(/home/cephd/.ssh/id_rsa):
Created directory '/home/cephd/.ssh'.
Enter passphrase(empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in/home/cephd/.ssh/id_rsa.
Your public key has been saved in/home/cephd/.ssh/id_rsa.pub.
The key fingerprint is:...
# 公開鍵をnode0にコピーします
$ ssh-copy-id cephd@node0
/bin/ssh-copy-id: INFO: Source ofkey(s) to be installed:"/home/cephd/.ssh/id_rsa.pub"
The authenticity of host 'node0 (10.222.77.242)' can't be established.
ECDSA key fingerprint is MD5:3c:e0:a7:a0:e6:3c:dc:c0:df:28:dc:87:16:2d:0f:c6.
Are you sure you want to continueconnecting(yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log inwith the newkey(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO:1key(s) remain to be installed --if you are prompted now it is to install the newkeys
cephd@node0's password:
Number ofkey(s) added:1
Now try logging into the machine,with:"ssh 'cephd@node0'"
and check to make sure that only the key(s) you wanted were added.
# 公開鍵をnode1にコピーします
$ ssh-copy-id cephd@node1
/bin/ssh-copy-id: INFO: Source ofkey(s) to be installed:"/home/cephd/.ssh/id_rsa.pub"
The authenticity of host 'node1 (10.222.77.253)' can't be established.
ECDSA key fingerprint is MD5:3c:e0:a7:a0:e6:3c:dc:c0:df:28:dc:87:16:2d:0f:c6.
Are you sure you want to continueconnecting(yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log inwith the newkey(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO:1key(s) remain to be installed --if you are prompted now it is to install the newkeys
cephd@node1's password:
Number ofkey(s) added:1
Now try logging into the machine,with:"ssh 'cephd@node1'"
and check to make sure that only the key(s) you wanted were added.
コピー後、ceph-deploy管理ノードの各ノードへのパスワードなしのログインをテストします。
$ ssh node0
Last login: Fri Dec 815:50:082017from admin
$ ssh node1
Last login: Fri Dec 815:49:272017from admin
テストに問題はありません。次に、ceph-deploy管理ノードの*〜/ .ssh / config *ファイルを変更して、ceph-deployを実行するたびに–usernamecephdを指定する必要がないようにします。これにより、sshとscpの使用も簡素化されます。
$ cat ~/.ssh/config
Host node0
Hostname node0
User cephd
Host node1
Hostname node1
User cephd
この時点で ssh node0
を実行すると、 Badownerまたはpermissionson / home / cephd / .ssh / config
のエラーが表示されることに注意してください。その理由は、設定ファイルの権限の問題です。これは、権限 sudo chmod 600config
を変更することで解決できます。
3.5 その他のネットワーク構成
公式Webサイトのドキュメントでは、CephのさまざまなOSDプロセスがネットワークを介して相互接続され、そのステータスがモニターに報告されることが指定されているため、ネットワークがオンになっていることを確認してください。ただし、一部のディストリビューション(CentOSなど)はデフォルトでネットワークインターフェイスを閉じます。したがって、クラスター内の各ノードシステムのネットワークインターフェイスが開いていることを確認する必要があります。
# Cephクラスターの各ノードで次の操作を実行します
$ sudo cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="3e68d5a3-f9a6-4c83-9969-706f7e3b0bc2"
DEVICE="enp0s3"
ONBOOT="yes" #ここでyesに設定します
注:インストールした仮想マシンクラスターのネットワークカードはenp0s3であるため、 / etc / sysconfig / network-scripts / ifcfg-enp0s3
ファイルを変更する必要があります。システムネットワークカード名に従って対応する構成ファイルを変更してください。
SELINUX設定。CentOSシステムでは、SELinuxはデフォルトで強制として有効になっています。インストールを容易にするために、SELinuxを許容または無効に設定することをお勧めします。
# Cephクラスターの各ノードで次の操作を実行します
# 一時的に有効な設定
$ sudo setenforce 0
# 永続的に効果的な設定
$ sudo cat /etc/selinux/config
SELINUX=disabled #ここで許容として設定| disabled
SELINUXTYPE=targeted
必要なポート設定を開きます。CephMonitorsはデフォルトでポート6789を通信に使用し、OSDはデフォルトで6800:7300の範囲のポート通信を使用します。したがって、ファイアウォール設定を調整し、必要なポートを開き、対応する受信要求を許可する必要があります。
# ファイアウォール設定
$ sudo firewall-cmd --zone=public--add-port=6789/tcp --permanent
# もちろん、ファイアウォールをオフにすることもできます
$ sudo systemctl stop firewalld.service #ファイアウォールを停止します
$ sudo systemctl disable firewalld.service #ファイアウォールの起動を禁止する
4、 Cephストレージクラスターの構築
さて、上記の一連の事前チェック設定の後、Cephストレージクラスターの構築を開始できます。クラスター構造は、admin-node(ceph-deploy、Monitor)、node0(osd.0)、node1(osd.1)です。 。最初に言及することは、インストールプロセス中に問題が発生し、再操作する必要がある場合、たとえば、構築したクラスターをクリーンアップする場合は、次のコマンドを使用できることです。
# ceph-deploy(admin-node)実行時
# 構成のクリーンアップ
ceph-deploy purgedata admin node0 node1
ceph-deploy forgetkeys
# Cephインストールパッケージをクリーンアップします
ceph-deploy purge admin node0 node1
さて、今から構築を始めましょう。まず、Cephdユーザーはディレクトリceph-clusterを作成し、ディレクトリに入って一連の操作を実行します。設計したモニターノードは管理ノードノード上にあるため、次のコマンドを実行します。
# 実行ディレクトリを作成します
$ mkdir ~/ceph-cluster && cd ~/ceph-cluster
# クラスターを作成する
$ ceph-deploy newadmin[ceph_deploy.conf][DEBUG ] found configuration file at:/home/cephd/.cephdeploy.conf
[ ceph_deploy.cli][INFO ]Invoked(1.5.39):/bin/ceph-deploy newadmin[ceph_deploy.cli][INFO ] ceph-deploy options:[ceph_deploy.cli][INFO ] username : None
[ ceph_deploy.cli][INFO ] func :<functionnewat0xf24938>[ceph_deploy.cli][INFO ] verbose : False
[ ceph_deploy.cli][INFO ] overwrite_conf : False
[ ceph_deploy.cli][INFO ] quiet : False
[ ceph_deploy.cli][INFO ] cd_conf :<ceph_deploy.conf.cephdeploy.Conf instance at 0xf1f6c8>[ceph_deploy.cli][INFO ] cluster : ceph
[ ceph_deploy.cli][INFO ] ssh_copykey : True
[ ceph_deploy.cli][INFO ] mon :['admin'][ceph_deploy.cli][INFO ] public_network : None
[ ceph_deploy.cli][INFO ] ceph_conf : None
[ ceph_deploy.cli][INFO ] cluster_network : None
[ ceph_deploy.cli][INFO ] default_release : False
[ ceph_deploy.cli][INFO ] fsid : None
[ ceph_deploy.new][DEBUG ] Creating newcluster named ceph
[ ceph_deploy.new][INFO ] making sure passwordless SSH succeeds
...[ ceph_deploy.new][DEBUG ] Resolving host admin
[ ceph_deploy.new][DEBUG ] Monitor admin at 10.222.77.213[ceph_deploy.new][DEBUG ] Monitor initial members are ['admin'][ceph_deploy.new][DEBUG ] Monitor addrs are ['10.222.77.213'][ceph_deploy.new][DEBUG ] Creating a random mon key...[ceph_deploy.new][DEBUG ] Writing monitor keyring to ceph.mon.keyring...[ceph_deploy.new][DEBUG ] Writing initial config to ceph.conf...
この時点で、ceph-deployがceph-clusterディレクトリにいくつかのファイルを生成することがわかります。* ceph.conf はceph構成ファイル、 ceph-deploy-ceph.log はceph-deployログファイル、 cephです。 mon.keyring *は、セフモニターのキーリングです。
$ ll ceph-cluster
- rw-rw-r--.1 cephd cephd 19612 714:46 ceph.conf
- rw-rw-r--.1 cephdcephd369412月714:46 ceph-deploy-ceph.log
- rw-------.1 cephd cephd 73 Dec 714:46 ceph.mon.keyring
$ cat ceph.conf
[ global]
fsid = 363c3cf4-dba4-4f13-8ec5-ed93416f4e26
mon_initial_members = admin
mon_host =10.222.77.213
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
次に、2つのosdノードがあるため、* ceph.conf *構成ファイルを変更してコピー数を2に増やす必要があります。
$ cat ceph.conf
[ global]
fsid = 363c3cf4-dba4-4f13-8ec5-ed93416f4e26
mon_initial_members = admin
mon_host =10.222.77.213
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size =2 #デフォルトのコピー数を2に増やします
次に、ceph-deployを使用して各ノードにcephをインストールする必要があります。
$ ceph-deploy install admin node0 node1
[ ceph_deploy.conf][DEBUG ] found configuration file at:/home/cephd/.cephdeploy.conf
[ ceph_deploy.cli][INFO ]Invoked(1.5.39):/bin/ceph-deploy install admin node0 node1
[ ceph_deploy.cli][INFO ] ceph-deploy options:[ceph_deploy.cli][INFO ] verbose : False
[ ceph_deploy.cli][INFO ] testing : None
[ ceph_deploy.cli][INFO ] cd_conf :<ceph_deploy.conf.cephdeploy.Conf instance at 0xde1c68>[ceph_deploy.cli][INFO ] cluster : ceph
[ ceph_deploy.cli][INFO ] dev_commit : None
[ ceph_deploy.cli][INFO ] install_mds : False
[ ceph_deploy.cli][INFO ] stable : None
[ ceph_deploy.cli][INFO ] default_release : False
[ ceph_deploy.cli][INFO ] username : None
[ ceph_deploy.cli][INFO ] adjust_repos : True
[ ceph_deploy.cli][INFO ] func :<function install at 0xd5b140>[ceph_deploy.cli][INFO ] install_mgr : False
[ ceph_deploy.cli][INFO ] install_all : False
[ ceph_deploy.cli][INFO ] repo : False
[ ceph_deploy.cli][INFO ] host :['admin','node0','node1'][ceph_deploy.cli][INFO ] install_rgw : False
[ ceph_deploy.cli][INFO ] install_tests : False
[ ceph_deploy.cli][INFO ] repo_url : None
[ ceph_deploy.cli][INFO ] ceph_conf : None
[ ceph_deploy.cli][INFO ] install_osd : False
[ ceph_deploy.cli][INFO ] version_kind : stable
[ ceph_deploy.cli][INFO ] install_common : False
[ ceph_deploy.cli][INFO ] overwrite_conf : False
[ ceph_deploy.cli][INFO ] quiet : False
[ ceph_deploy.cli][INFO ] dev : master
[ ceph_deploy.cli][INFO ] nogpgcheck : False
[ ceph_deploy.cli][INFO ] local_mirror : None
[ ceph_deploy.cli][INFO ] release : None
[ ceph_deploy.cli][INFO ] install_mon : False
[ ceph_deploy.cli][INFO ] gpg_url : None
[ ceph_deploy.install][DEBUG ] Installing stable version jewel on cluster ceph hosts admin node0 node1
[ ceph_deploy.install][DEBUG ] Detecting platform for host admin ......
ceph-deployはSSHで各ノードにログインし、cephが依存するコンポーネントパッケージを順番にインストールするため、このプロセスはしばらく待つ必要があります。
インストールが完了するまで長い間待った後、次のステップはモニターノードを初期化してすべてのキーを収集することです。
$ ceph-deploy mon create-initial
...
ceph_deploy.mon][ERROR ] RuntimeError: config file /etc/ceph/ceph.conf exists with different content; use --overwrite-conf to overwrite
[ ceph_deploy][ERROR ] GenericError: Failed to create 1 monitors
...
残念ながら、実行中にエラーが報告されました。その理由は、* / etc / ceph / ceph.conf *構成ファイルがすでに存在しているためです。解決策は、 --overwrite-conf
パラメーターを追加して、既存の構成を上書きすることです。
$ ceph-deploy --overwrite-conf mon create-initial
[ ceph_deploy.conf][DEBUG ] found configuration file at:/home/cephd/.cephdeploy.conf
[ ceph_deploy.cli][INFO ]Invoked(1.5.39):/bin/ceph-deploy --overwrite-conf mon create-initial
[ ceph_deploy.cli][INFO ] ceph-deploy options:[ceph_deploy.cli][INFO ] username : None
[ ceph_deploy.cli][INFO ] verbose : False
[ ceph_deploy.cli][INFO ] overwrite_conf : True
[ ceph_deploy.cli][INFO ] subcommand : create-initial
[ ceph_deploy.cli][INFO ] quiet : False
[ ceph_deploy.cli][INFO ] cd_conf :<ceph_deploy.conf.cephdeploy.Conf instance at 0x1d9e758>[ceph_deploy.cli][INFO ] cluster : ceph
[ ceph_deploy.cli][INFO ] func :<function mon at 0x1d8ea28>[ceph_deploy.cli][INFO ] ceph_conf : None
[ ceph_deploy.cli][INFO ] default_release : False
[ ceph_deploy.cli][INFO ] keyrings : None
[ ceph_deploy.mon][DEBUG ] Deploying mon, cluster ceph hosts admin
[ ceph_deploy.mon][DEBUG ] detecting platform for host admin ......[admin][INFO ] Running command: sudo /usr/bin/ceph --connect-timeout=25--cluster=ceph --admin-daemon=/var/run/ceph/ceph-mon.admin.asok mon_status
[ admin][INFO ] Running command: sudo /usr/bin/ceph --connect-timeout=25--cluster=ceph --name mon.--keyring=/var/lib/ceph/mon/ceph-admin/keyring auth get client.admin
[ admin][INFO ] Running command: sudo /usr/bin/ceph --connect-timeout=25--cluster=ceph --name mon.--keyring=/var/lib/ceph/mon/ceph-admin/keyring auth get client.bootstrap-mds
[ admin][INFO ] Running command: sudo /usr/bin/ceph --connect-timeout=25--cluster=ceph --name mon.--keyring=/var/lib/ceph/mon/ceph-admin/keyring auth get client.bootstrap-mgr
[ admin][INFO ] Running command: sudo /usr/bin/ceph --connect-timeout=25--cluster=ceph --name mon.--keyring=/var/lib/ceph/mon/ceph-admin/keyring auth get-or-create client.bootstrap-mgr mon allow profile bootstrap-mgr
[ admin][INFO ] Running command: sudo /usr/bin/ceph --connect-timeout=25--cluster=ceph --name mon.--keyring=/var/lib/ceph/mon/ceph-admin/keyring auth get client.bootstrap-osd
[ admin][INFO ] Running command: sudo /usr/bin/ceph --connect-timeout=25--cluster=ceph --name mon.--keyring=/var/lib/ceph/mon/ceph-admin/keyring auth get client.bootstrap-rgw
[ ceph_deploy.gatherkeys][INFO ] Storing ceph.client.admin.keyring
[ ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-mds.keyring
[ ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-mgr.keyring
[ ceph_deploy.gatherkeys][INFO ] keyring 'ceph.mon.keyring' already exists
[ ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-osd.keyring
[ ceph_deploy.gatherkeys][INFO ] Storing ceph.bootstrap-rgw.keyring
[ ceph_deploy.gatherkeys][INFO ] Destroy temp directory /tmp/tmpLv4mug
実行が完了すると、一連のキーリングが現在のディレクトリに生成されます。これは、コンポーネント間のアクセスに必要な認証情報である必要があります。
$ ll ~/ceph-cluster
- rw-------.1セフドセフド11312715:13 ceph.bootstrap-mds.keyring
- rw-------.1 cephd cephd 71 12 715:13 ceph.bootstrap-mgr.keyring
- rw-------.1セフドセフド11312715:13 ceph.bootstrap-osd.keyring
- rw-------.1セフドセフド11312715:13 ceph.bootstrap-rgw.keyring
- rw-------.1 cephd cephd 12912 715:13 ceph.client.admin.keyring
- rw-rw-r--.1 cephd cephd 22212 714:47 ceph.conf
- rw-rw-r--.1セフドセフド12020712715:13 ceph-deploy-ceph.log
- rw-------.1 cephd cephd 73 Dec 714:46 ceph.mon.keyring
この時点で、cephモニターは正常に開始されています。次に、OSDを作成する必要があります。OSDは最終データが保存される場所です。ここでは、osd.0とosd.1の2つのOSDノードを用意しました。公式の推奨事項は、OSDとそのログのストレージスペースとして別のハードディスクまたはパーティションを使用することです。ただし、ローカル仮想マシンに条件はありませんが、OSDのストレージスペースとして仮想マシンのローカルディスクにディレクトリを作成できます。
# ceph-deploy(admin-node)実行時
$ ssh node0
$ sudo mkdir /var/local/osd0
$ sudo chown -R ceph:ceph /var/local/osd0
$ exit
$ ssh node1
$ sudo mkdir /var/local/osd1
$ sudo chown -R ceph:ceph /var/local/osd1
$ exit
注:ここでは、 chown -R ceph:ceph
操作が実行され、osd0およびosd1ディレクトリのアクセス許可がceph:cephに割り当てられます。そうしないと、次にceph-deploy osd activate ...
を実行するとアクセス許可エラーが報告されます。
次に、「prepare」OSD操作を実行するためにceph-deployノードが必要です。目的は、各OSDノードでOSDをアクティブ化するために必要な情報を作成することです。
$ ceph-deploy --overwrite-conf osd prepare node0:/var/local/osd0 node1:/var/local/osd1
[ ceph_deploy.conf][DEBUG ] found configuration file at:/home/cephd/.cephdeploy.conf
[ ceph_deploy.cli][INFO ]Invoked(1.5.39):/bin/ceph-deploy --overwrite-conf osd prepare node0:/var/local/osd0 node1:/var/local/osd1
[ ceph_deploy.cli][INFO ] ceph-deploy options:[ceph_deploy.cli][INFO ] username : None
[ ceph_deploy.cli][INFO ] block_db : None
[ ceph_deploy.cli][INFO ] disk :[('node0','/var/local/osd0', None),('node1','/var/local/osd1', None)][ceph_deploy.cli][INFO ] dmcrypt : False
[ ceph_deploy.cli][INFO ] verbose : False
[ ceph_deploy.cli][INFO ] bluestore : None
[ ceph_deploy.cli][INFO ] block_wal : None
[ ceph_deploy.cli][INFO ] overwrite_conf : True
[ ceph_deploy.cli][INFO ] subcommand : prepare
[ ceph_deploy.cli][INFO ] dmcrypt_key_dir :/etc/ceph/dmcrypt-keys
[ ceph_deploy.cli][INFO ] quiet : False
[ ceph_deploy.cli][INFO ] cd_conf :<ceph_deploy.conf.cephdeploy.Conf instance at 0x117d950>[ceph_deploy.cli][INFO ] cluster : ceph
[ ceph_deploy.cli][INFO ] fs_type : xfs
[ ceph_deploy.cli][INFO ] filestore : None
[ ceph_deploy.cli][INFO ] func :<function osd at 0x116a320>[ceph_deploy.cli][INFO ] ceph_conf : None
[ ceph_deploy.cli][INFO ] default_release : False
[ ceph_deploy.cli][INFO ] zap_disk : False
[ ceph_deploy.osd][DEBUG ] Preparing cluster ceph disks node0:/var/local/osd0: node1:/var/local/osd1:[node0][DEBUG ] connection detected need for sudo
[ node0][DEBUG ] connected to host: node0
[ node0][DEBUG ] detect platform information from remote host
[ node0][DEBUG ] detect machine type
[ node0][DEBUG ] find the location of an executable
[ ceph_deploy.osd][INFO ] Distro info: CentOS Linux 7.3.1611 Core
[ ceph_deploy.osd][DEBUG ] Deploying osd to node0
...[ node0][INFO ] checking OSD status...[node0][DEBUG ] find the location of an executable
[ node0][INFO ] Running command: sudo /bin/ceph --cluster=ceph osd stat --format=json
[ ceph_deploy.osd][DEBUG ] Host node0 is now ready for osd use.[node1][DEBUG ] connection detected need for sudo
[ node1][DEBUG ] connected to host: node1
[ node1][DEBUG ] detect platform information from remote host
[ node1][DEBUG ] detect machine type
[ node1][DEBUG ] find the location of an executable
[ ceph_deploy.osd][INFO ] Distro info: CentOS Linux 7.3.1611 Core
[ ceph_deploy.osd][DEBUG ] Deploying osd to node1
...[ node1][INFO ] checking OSD status...[node1][DEBUG ] find the location of an executable
[ node1][INFO ] Running command: sudo /bin/ceph --cluster=ceph osd stat --format=json
[ ceph_deploy.osd][DEBUG ] Host node1 is now ready for osd use.
OK次に、 activate
OSDをアクティブ化する必要があります。
$ ceph-deploy osd activate node0:/var/local/osd0 node1:/var/local/osd1
[ ceph_deploy.conf][DEBUG ] found configuration file at:/home/cephd/.cephdeploy.conf
[ ceph_deploy.cli][INFO ]Invoked(1.5.39):/bin/ceph-deploy osd activate node0:/var/local/osd0 node1:/var/local/osd1
[ ceph_deploy.cli][INFO ] ceph-deploy options:[ceph_deploy.cli][INFO ] username : None
[ ceph_deploy.cli][INFO ] verbose : False
[ ceph_deploy.cli][INFO ] overwrite_conf : False
[ ceph_deploy.cli][INFO ] subcommand : activate
[ ceph_deploy.cli][INFO ] quiet : False
[ ceph_deploy.cli][INFO ] cd_conf :<ceph_deploy.conf.cephdeploy.Conf instance at 0x2045950>[ceph_deploy.cli][INFO ] cluster : ceph
[ ceph_deploy.cli][INFO ] func :<function osd at 0x2032320>[ceph_deploy.cli][INFO ] ceph_conf : None
[ ceph_deploy.cli][INFO ] default_release : False
[ ceph_deploy.cli][INFO ] disk :[('node0','/var/local/osd0', None),('node1','/var/local/osd1', None)][ceph_deploy.osd][DEBUG ] Activating cluster ceph disks node0:/var/local/osd0: node1:/var/local/osd1:[node0][DEBUG ] connection detected need for sudo
[ node0][DEBUG ] connected to host: node0
[ node0][DEBUG ] detect platform information from remote host
[ node0][DEBUG ] detect machine type
[ node0][DEBUG ] find the location of an executable
[ ceph_deploy.osd][INFO ] Distro info: CentOS Linux 7.3.1611 Core
[ ceph_deploy.osd][DEBUG ] activating host node0 disk /var/local/osd0
[ ceph_deploy.osd][DEBUG ] will use init type: systemd
...[ node0][INFO ] checking OSD status...[node0][DEBUG ] find the location of an executable
[ node0][INFO ] Running command: sudo /bin/ceph --cluster=ceph osd stat --format=json
[ node0][INFO ] Running command: sudo systemctl enable ceph.target
[ node1][DEBUG ] connection detected need for sudo
[ node1][DEBUG ] connected to host: node1
[ node1][DEBUG ] detect platform information from remote host
[ node1][DEBUG ] detect machine type
[ node1][DEBUG ] find the location of an executable
[ ceph_deploy.osd][INFO ] Distro info: CentOS Linux 7.3.1611 Core
[ ceph_deploy.osd][DEBUG ] activating host node1 disk /var/local/osd1
[ ceph_deploy.osd][DEBUG ] will use init type: systemd
...[ node1][INFO ] checking OSD status...[node1][DEBUG ] find the location of an executable
[ node1][INFO ] Running command: sudo /bin/ceph --cluster=ceph osd stat --format=json
[ node1][INFO ] Running command: sudo systemctl enable ceph.target
ログを見ると、アクティベーションに問題はありません。最後のステップは、「ceph-deploy admin」を使用して構成ファイルと管理キーを各ノードに同期することです。これにより、各ノードでcephコマンドを使用するときに、モニターアドレスと「ceph.client」を指定する必要がなくなります。 admin.keyring`キー。
$ ceph-deploy admin admin node0 node1
[ ceph_deploy.conf][DEBUG ] found configuration file at:/home/cephd/.cephdeploy.conf
[ ceph_deploy.cli][INFO ]Invoked(1.5.39):/bin/ceph-deploy admin admin node0 node1
[ ceph_deploy.cli][INFO ] ceph-deploy options:[ceph_deploy.cli][INFO ] username : None
[ ceph_deploy.cli][INFO ] verbose : False
[ ceph_deploy.cli][INFO ] overwrite_conf : False
[ ceph_deploy.cli][INFO ] quiet : False
[ ceph_deploy.cli][INFO ] cd_conf :<ceph_deploy.conf.cephdeploy.Conf instance at 0x15a93b0>[ceph_deploy.cli][INFO ] cluster : ceph
[ ceph_deploy.cli][INFO ] client :['admin','node0','node1'][ceph_deploy.cli][INFO ] func :<function admin at 0x1500cf8>[ceph_deploy.cli][INFO ] ceph_conf : None
[ ceph_deploy.cli][INFO ] default_release : False
[ ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to admin
[ admin][DEBUG ] connection detected need for sudo
[ admin][DEBUG ] connected to host: admin
[ admin][DEBUG ] detect platform information from remote host
[ admin][DEBUG ] detect machine type
[ admin][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
[ ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to node0
[ node0][DEBUG ] connection detected need for sudo
[ node0][DEBUG ] connected to host: node0
[ node0][DEBUG ] detect platform information from remote host
[ node0][DEBUG ] detect machine type
[ node0][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
[ ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to node1
[ node1][DEBUG ] connection detected need for sudo
[ node1][DEBUG ] connected to host: node1
[ node1][DEBUG ] detect platform information from remote host
[ node1][DEBUG ] detect machine type
[ node1][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf
同時に、 ceph.client.admin.keyring
の正しい操作権限を確保するために、権限設定を増やす必要があります。
$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring
この時点で、Cephストレージクラスターがセットアップされました。クラスターが正常に開始されたかどうかを確認できます。
# クラスターステータスの表示
$ ceph -s
cluster 363c3cf4-dba4-4f13-8ec5-ed93416f4e26
health HEALTH_OK
monmap e1:1 mons at {admin=10.222.77.213:6789/0}
election epoch 6, quorum 0 admin
osdmap e15:2 osds:2 up,2in
flags sortbitwise,require_jewel_osds
pgmap v9276:64 pgs,1 pools,863 MB data,226 objects
33440 MB used,33574 MB /67015 MB avail
64 active+clean
# またはクラスターの状態を表示する
$ ceph health
HEALTH_OK
# クラスタOSD情報を表示する
$ ceph osd tree
ID WEIGHT TYPE NAME UP/DOWN REWEIGHT PRIMARY-AFFINITY
- 10.06400 root default-20.03200 host node0
00.03200 osd.0 up 1.000001.00000-30.03200 host node1
10.03200 osd.1 up 1.000001.00000
公式ドキュメントのCephのインストールとクラスター構築の手順を参照することで、ストレージクラスター全体が段階的に構築されます。ドキュメントは非常に詳細で使いやすいです。今回はこれを最初に記録します。次の記事では、Cephストレージシステムのオブジェクトストレージ、ブロックデバイス、およびファイルシステムについて引き続き調査します。
参考資料
Recommended Posts