このセクションは、アカウントサービス、コンテナーサービス、オブジェクトサービスを実行するストレージノードをインストールして設定する方法を紹介します。この設定は簡単のため、それぞれ 2 つの空のローカルブロックストレージデバイス( /dev/vdb、/dev/vdc )を持つ、2 つのストレージノードを利用します。

ストレージデバイスの準備

ストレージノードに Object Storage サービスをインストールして設定する前に、ストレージデバイスを準備する必要があります。

オブジェクトノード1( object1 )に、Openstack Rocky のリポジトリを追加します。

[root@object1 ~]# yum -y install centos-release-openstack-rocky 
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.yz.yamagata-u.ac.jp
 * extras: ftp.yz.yamagata-u.ac.jp
 * updates: ftp.yz.yamagata-u.ac.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ centos-release-openstack-rocky.noarch 0:1-1.el7.centos を インストール
--> 依存性の処理をしています: centos-release-qemu-ev のパッケージ: centos-release-openstack-rocky-1-1.el7.centos.noarch
--> 依存性の処理をしています: centos-release-ceph-luminous のパッケージ: centos-release-openstack-rocky-1-1.el7.centos.noarch
--> トランザクションの確認を実行しています。
---> パッケージ centos-release-ceph-luminous.noarch 0:1.1-2.el7.centos を インストール
--> 依存性の処理をしています: centos-release-storage-common のパッケージ: centos-release-ceph-luminous-1.1-2.el7.centos.noarch
---> パッケージ centos-release-qemu-ev.noarch 0:1.0-3.el7.centos を インストール
--> 依存性の処理をしています: centos-release-virt-common のパッケージ: centos-release-qemu-ev-1.0-3.el7.centos.noarch
--> トランザクションの確認を実行しています。
---> パッケージ centos-release-storage-common.noarch 0:2-2.el7.centos を インストール
---> パッケージ centos-release-virt-common.noarch 0:1-1.el7.centos を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package                          アーキテクチャー
                                           バージョン            リポジトリー
                                                                           容量
================================================================================
インストール中:
 centos-release-openstack-rocky   noarch   1-1.el7.centos        extras   5.2 k
依存性関連でのインストールをします:
 centos-release-ceph-luminous     noarch   1.1-2.el7.centos      extras   4.4 k
 centos-release-qemu-ev           noarch   1.0-3.el7.centos      extras    11 k
 centos-release-storage-common    noarch   2-2.el7.centos        extras   5.1 k
 centos-release-virt-common       noarch   1-1.el7.centos        extras   4.5 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+4 個の依存関係のパッケージ)

総ダウンロード容量: 30 k
インストール容量: 24 k
Downloading packages:
(1/5): centos-release-ceph-luminous-1.1-2.el7.centos.noarc | 4.4 kB   00:00     
(2/5): centos-release-virt-common-1-1.el7.centos.noarch.rp | 4.5 kB   00:00     
(3/5): centos-release-storage-common-2-2.el7.centos.noarch | 5.1 kB   00:00     
(4/5): centos-release-openstack-rocky-1-1.el7.centos.noarc | 5.2 kB   00:00     
(5/5): centos-release-qemu-ev-1.0-3.el7.centos.noarch.rpm  |  11 kB   00:00     
--------------------------------------------------------------------------------
合計                                                36 kB/s |  30 kB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : centos-release-storage-common-2-2.el7.centos.   1/5 
  インストール中          : centos-release-ceph-luminous-1.1-2.el7.centos   2/5 
  インストール中          : centos-release-virt-common-1-1.el7.centos.noa   3/5 
  インストール中          : centos-release-qemu-ev-1.0-3.el7.centos.noarc   4/5 
  インストール中          : centos-release-openstack-rocky-1-1.el7.centos   5/5 
  検証中                  : centos-release-ceph-luminous-1.1-2.el7.centos   1/5 
  検証中                  : centos-release-openstack-rocky-1-1.el7.centos   2/5 
  検証中                  : centos-release-qemu-ev-1.0-3.el7.centos.noarc   3/5 
  検証中                  : centos-release-virt-common-1-1.el7.centos.noa   4/5 
  検証中                  : centos-release-storage-common-2-2.el7.centos.   5/5 

インストール:
  centos-release-openstack-rocky.noarch 0:1-1.el7.centos                        

依存性関連をインストールしました:
  centos-release-ceph-luminous.noarch 0:1.1-2.el7.centos                        
  centos-release-qemu-ev.noarch 0:1.0-3.el7.centos                              
  centos-release-storage-common.noarch 0:2-2.el7.centos                         
  centos-release-virt-common.noarch 0:1-1.el7.centos                            

完了しました!
[root@object1 ~]# 

openstack-rocky の yum リポジトリ(CentOS-Openstack-rocky.repo)を無効化しておく。使用したい時には、yum で指定して使用します。

[root@object1 ~]# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/CentOS-OpenStack-rocky.repo 
[root@object1 ~]# 

openstack-rocky の yum リポジトリ(CentOS-Openstack-rocky.repo)を使って、補助ユーティリティーパッケージをインストールします。

[root@object1 ~]# yum --enablerepo=centos-openstack-rocky -y install xfsprogs rsync
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.yz.yamagata-u.ac.jp
 * extras: ftp.yz.yamagata-u.ac.jp
 * updates: ftp.yz.yamagata-u.ac.jp
centos-openstack-rocky                                   | 2.9 kB     00:00     
centos-openstack-rocky/7/x86_64/primary_db                 | 769 kB   00:03     
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ rsync.x86_64 0:3.1.2-4.el7 を インストール
---> パッケージ xfsprogs.x86_64 0:4.5.0-15.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package           アーキテクチャー
                                   バージョン               リポジトリー   容量
================================================================================
インストール中:
 rsync             x86_64          3.1.2-4.el7              base          403 k
 xfsprogs          x86_64          4.5.0-15.el7             base          896 k

トランザクションの要約
================================================================================
インストール  2 パッケージ

総ダウンロード容量: 1.3 M
インストール容量: 4.7 M
Downloading packages:
(1/2): rsync-3.1.2-4.el7.x86_64.rpm                        | 403 kB   00:00     
(2/2): xfsprogs-4.5.0-15.el7.x86_64.rpm                    | 896 kB   00:30     
--------------------------------------------------------------------------------
合計                                                42 kB/s | 1.3 MB  00:30     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : rsync-3.1.2-4.el7.x86_64                        1/2 
  インストール中          : xfsprogs-4.5.0-15.el7.x86_64                    2/2 
  検証中                  : xfsprogs-4.5.0-15.el7.x86_64                    1/2 
  検証中                  : rsync-3.1.2-4.el7.x86_64                        2/2 

インストール:
  rsync.x86_64 0:3.1.2-4.el7           xfsprogs.x86_64 0:4.5.0-15.el7          

完了しました!
[root@object1 ~]# 

オブジェクトストレージノード1の現在の論理ボリューム(パーティション)を確認します。ここでは、2 つの空のローカルブロックストレージデバイス( /dev/vdb、/dev/vdc )が認識されていることを確認します。

[root@object1 ~]# fdisk -l

Disk /dev/vda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000a4ca9

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200    41943039    19921920   8e  Linux LVM

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト


Disk /dev/vdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト


Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト


Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

[root@object1 ~]#

パーティション /dev/vdb を XFS としてフォーマットします。

[root@object1 ~]# mkfs.xfs -f /dev/vdb
meta-data=/dev/vdb               isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@object1 ~]# 

パーティション /dev/vdc を XFS としてフォーマットします。

[root@object1 ~]# mkfs.xfs -f /dev/vdc
meta-data=/dev/vdc               isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@object1 ~]# 

マウントポイントとなるディレクトリーを作成します。

[root@object1 ~]# mkdir -p /srv/node/vdb
[root@object1 ~]# mkdir -p /srv/node/vdc

[root@object1 ~]# ls /srv/node/
vdb  vdc
[root@object1 ~]# 

/etc/fstab ファイルを編集し、以下の内容を追加します。

[root@object1 ~]# vi /etc/fstab 
以下の設定を追加
/dev/vdb /srv/node/vdb xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
/dev/vdc /srv/node/vdc xfs noatime,nodiratime,nobarrier,logbufs=8 0 2

デバイスをマウントします。

[root@object1 ~]# mount /srv/node/vdb

[root@object1 ~]# mount /srv/node/vdc

正常にマウントされていることを確認します。以下の行が表示できていれば、正常にマウントされています。
/dev/vdb on /srv/node/vdb type xfs
/dev/vdc on /srv/node/vdc type xfs

[root@object1 ~]# mount -v
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=495688k,nr_inodes=123922,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_prio,net_cls)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuacct,cpu)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=11908)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
/dev/vda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=101552k,mode=700)
/dev/vdc on /srv/node/vdc type xfs (rw,noatime,nodiratime,seclabel,attr2,nobarrier,inode64,logbufs=8,noquota)
/dev/vdb on /srv/node/vdb type xfs (rw,noatime,nodiratime,seclabel,attr2,nobarrier,inode64,logbufs=8,noquota)
[root@object1 ~]# 

/etc/rsyncd.conf ファイルを編集し、以下の内容を追加します。address には、オブジェクトストレージ1 の管理インターフェースのIPアドレスを指定します。

[root@object1 ~]# vi /etc/rsyncd.conf 
以下を追加する
uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = 192.168.24.120

[account]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/account.lock

[container]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/container.lock

[object]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/object.lock

rsyncd サービスの自動起動を有効化します。

■ 自動起動の有効化
[root@object1 ~]# systemctl enable rsyncd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
[root@object1 ~]# 

■ 自動起動の状態確認
[root@object1 ~]# systemctl is-enabled rsyncd.service
enabled
[root@object1 ~]#

rsyncd サービスを起動します。

■ 起動
[root@object1 ~]# systemctl start rsyncd.service
[root@object1 ~]# 

■ 起動状態の確認
[root@object1 ~]# systemctl status rsyncd.service
● rsyncd.service - fast remote file copy program daemon
   Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; enabled; vendor preset: disabled)
   Active: active (running) since 月 2018-10-29 22:16:29 JST; 4s ago
 Main PID: 4063 (rsync)
   CGroup: /system.slice/rsyncd.service
           └─4063 /usr/bin/rsync --daemon --no-detach

10月 29 22:16:29 object1 systemd[1]: Started fast remote file copy program...n.
10月 29 22:16:29 object1 systemd[1]: Starting fast remote file copy progra.....
Hint: Some lines were ellipsized, use -l to show in full.
[root@object1 ~]# 

オブジェクトストレージノード2 でも上記同様の手順を実施し、オブジェクストレージノード2 のストレージデバイスを準備する。