このガイドでは、CentOS 7を実行するAoEターゲットとAoEイニシエーター(クライアント)をセットアップする方法について説明します。AoEは「ATAover Ethernet」の略で、AoEイニシエーターがストレージデバイスを使用できるようにするストレージエリアネットワーク(SAN)プロトコルです。通常のイーサネットケーブルを使用した(リモート)AoEターゲット。この場合の「リモート」は、AoEがLANの外部でルーティングできないため、「同じLANの内部」を意味します(これはiSCSIとの大きな違いです)。 AoEイニシエーターにとって、リモートストレージは通常のローカルに接続されたハードドライブのように見えます。
1予備メモ
ここでは2台のCentOS7サーバーを使用しています:
- server1.example.com(イニシエーター):IPアドレス192.168.1.100
- server2.example.com(ターゲット):IPアドレス192.168.1.101
2追加のリポジトリを有効にする
server1 / server2:
まず、ソフトウェアパッケージのGPGキーをインポートします:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
次に、このチュートリアルの過程でインストールするパッケージの多くが公式のCentOS 7リポジトリで利用できないため、CentOSシステムでEPELリポジトリを有効にします。
yum -y install epel-release
yum -y install yum-priorities
/etc/yum.repos.d/epel.repoを編集します...
nano /etc/yum.repos.d/epel.repo
...そして[epel]セクションにpriority=10という行を追加します:
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [...]
次に、システム上の既存のパッケージを更新します。
yum -y update
3両方のシステムにAoEカーネルモジュールをロードする
server1 / server2:
始める前に、カーネルがAoEをサポートしていることを確認する必要があります:
grep ATA_OVER /boot/config-`uname -r`
これは次のように表示されます:
[[email protected] ~]# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
[[email protected] ~]#
これは、AoEがカーネルモジュールとして構築されたことを意味します。モジュールがすでにロードされているかどうかを確認しましょう:
lsmod | grep aoe
何も返されない場合、これはロードされていないことを意味します。この場合、次のようにロードできます:
modprobe aoe
モジュールがロードされているかどうかをもう一度確認しましょう:
lsmod | grep aoe
[[email protected] ~]# lsmod | grep aoe
aoe 54175 0
[[email protected] ~]#
システムの起動時にモジュールが自動的にロードされるようにするには、次の行を/etc/rc.localに追加します。
nano /etc/rc.local
[...] modprobe aoe [...]
4サーバー2でのサーバー(ターゲット)のセットアップ
server2:
まず、ターゲット(server2)を設定します:
rpm -i http://download.opensuse.org/repositories/home:/cyberorg:/ltsp/CentOS_7/x86_64/vblade-22-3.1.x86_64.rpm
ストレージには、未使用の論理ボリューム、イメージファイル、ハードドライブ(例:/ dev / sdb)、ハードドライブパーティション(例:/ dev / sdb1)、またはRAIDデバイス(例:/ dev / md0)を使用できます。
この例では、ストレージフォルダ/storageにある10GBの画像ファイルを使用します。
mkdir /storage
dd if=/dev/zero of=/storage/storage1.img bs=1024k count=10000
これにより、サイズが10GBのイメージファイル/storage/storage1.imgが作成されます。
代わりに論理ボリュームを使用する場合は、次のように、ボリュームグループvg0にstorage1という名前の10GBのサイズの論理ボリュームを作成できます。
lvcreate -L10G -n storage1 vg0
次に、ストレージデバイスを次のようにエクスポートします。
vbladed 0 1 ens33 /storage/storage1.img
最初の番号(0)はシェルフ番号(メジャー)、2番目の番号(1)はスロット番号(マイナー)です。これらの番号をお好みに合わせて変更してください。各AoEデバイスは、(複数のデバイスをエクスポートする場合)一意である必要があるいくつかのメジャー/マイナーによって識別されます。メジャーは0〜65535で、マイナーは0〜255です。 ens33の部分は、使用するイーサネットデバイスをvbladedに指示します。実行すると、イーサネットデバイスの詳細を確認できます
ifconfig
。
ターゲットを起動するたびに自動的にエクスポートを開始するには、/ etc / rc.local ...
を開きます。nano /etc/rc.local
...そしてそれに次の行を追加します(modprobe aoe行の後に!):
[...] vbladed 0 1 ens33 /storage/storage1.img [...]
5サーバー1でのクライアント(イニシエーター)のセットアップ
server1:
server1に、イニシエーターをインストールします。利用可能なCentOS7のパッケージはありませんが、centOS 6のパッケージは正常に機能するため、ここで使用します。
rpm -i http://download.opensuse.org/repositories/system:/aoetools/CentOS_CentOS-6/x86_64/aoetools-36-1.2.x86_64.rpm
次に、使用可能なAoEストレージデバイスを確認します。
aoe-discover
コマンド
aoe-stat
ストレージデバイスが表示されます:
[[email protected] ~]# aoe-stat
e0.1 10.485GB ens33 1024 up
[[email protected] ~]#
この時点で、/ dev / etherd/e0.1という名前のクライアントボックスで新しいブロックデバイスを使用できます。 / devツリーを見ると、新しいノードが表示されます:
ls -la /dev/etherd/
[[email protected] ~]# ls -la /dev/etherd/
total 0
drwxr-xr-x. 2 root root 160 Jun 30 14:49 .
drwxr-xr-x. 21 root root 3240 Jun 30 14:32 ..
c-w--w----. 1 root disk 152, 3 Jun 30 14:32 discover
brw-rw----. 1 root disk 152, 0 Jun 30 14:49 e0.1
cr--r-----. 1 root disk 152, 2 Jun 30 14:32 err
c-w--w----. 1 root disk 152, 6 Jun 30 14:32 flush
c-w--w----. 1 root disk 152, 4 Jun 30 14:32 interfaces
c-w--w----. 1 root disk 152, 5 Jun 30 14:32 revalidate
[[email protected] ~]#
そのデバイスを使用するには、フォーマットする必要があります:
fdisk /dev/etherd/e0.1
[[email protected] ~]# fdisk /dev/etherd/e0.1
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xed572fd4.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
The number of cylinders for this disk is set to 2610.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): <-- n
Command action
e extended
p primary partition (1-4)
<-- p
Partition number (1-4): <-- 1
First sector (2048-20479999, default 2048): <-- ENTER
Using default value 1
Last sector, +sectors or +size{K,M,G} (2048-20479999, default 20479999): <-- ENTER
Using default value 20479999
Partition 1 of type Linux and of size 9.8 GiB is set
Command (m for help): <-- t
Selected partition 1
Hex code (type L to list codes): <-- L
0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris
1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c7 Syrinx
5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data
6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility
8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
Hex code (type L to list codes): <-- 83
Command (m for help): <-- w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]#
その後、新しいデバイス/dev/etherd/e0.1p1があります。これは
の出力で確認できます。ls -l /dev/etherd/
[[email protected] ~]# ls -l /dev/etherd/
total 0
c-w--w----. 1 root disk 152, 3 Jun 30 14:32 discover
brw-rw----. 1 root disk 152, 0 Jun 30 14:54 e0.1
brw-rw----. 1 root disk 152, 1 Jun 30 14:54 e0.1p1
cr--r-----. 1 root disk 152, 2 Jun 30 14:32 err
c-w--w----. 1 root disk 152, 6 Jun 30 14:32 flush
c-w--w----. 1 root disk 152, 4 Jun 30 14:32 interfaces
c-w--w----. 1 root disk 152, 5 Jun 30 14:32 revalidate
[[email protected] ~]#
次に、/ dev / etherd / e0.1p1 ...
にファイルシステムを作成します。mkfs.ext4 /dev/etherd/e0.1p1
...そしてテスト目的でマウントします:
mount /dev/etherd/e0.1p1 /mnt
これで、...
の出力に新しいデバイスが表示されます。mount
[[email protected] ~]# mount
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=930336k,nr_inodes=232584,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,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/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,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=30,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
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/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
/dev/etherd/e0.1p1 on /mnt type ext4 (rw,relatime,seclabel,data=ordered)
[[email protected] ~]#
...そして
df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.3G 27G 5% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 192M 306M 39% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/etherd/e0.1p1 9.5G 37M 9.0G 1% /mnt
[[email protected] ~]#
次のようにマウントを解除できます:
umount /mnt
起動時にデバイスを自動的にマウントするには、たとえばディレクトリ/storageに、そのディレクトリを作成します...
mkdir /storage
...そして/etc/fstabに次の行を追加します。
nano /etc/fstab
[...] /dev/etherd/e0.1p1 /storage ext4 defaults,auto,_netdev 0 0
/ etc / fstabが読み取られた後にAoEのものがロードされるため、これだけでは起動時にデバイスをマウントするのに十分ではありません。したがって、/ etc / rc.local ...
を開きます。nano /etc/rc.local
...そしてそれに次の行を追加します(modprobe aoe行の後に!):
[...] aoe-discover sleep 5 mount -a [...]
テスト目的で、システムを再起動できるようになりました:
reboot
再起動後、デバイスをマウントする必要があります:
mount
[[email protected] ~]# mount
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=930336k,nr_inodes=232584,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,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/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,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=30,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
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/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=188060k,mode=700)
/dev/etherd/e0.1p1 on /mnt type ext4 (rw,relatime,seclabel,data=ordered)
[[email protected] ~]#
df -h
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.3G 27G 5% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 910M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 497M 192M 306M 39% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/etherd/e0.1p1 9.5G 37M 9.0G 1% /mnt
[[email protected] ~]#
6つのリンク
- AoEプロトコルの定義:http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
- CentOS:http://www.centos.org/