GNU/Linux >> Linux の 問題 >  >> Debian

Debian 8(イニシエーターとターゲット)でATA over Ethernet(AoE)をセットアップする

このチュートリアルでは、Debian 8 / JessieでAoEクライアント(イニシエーター)とサーバー(ターゲット)をセットアップする方法を示します。 AoEという用語は、「ATA over Ethernet」の略で、AoEクライアントが通常のイーサネットネットワークを介して(リモート)AoEサーバー上のストレージデバイスを使用できるようにするストレージエリアネットワーク(SAN)プロトコルです。この場合の「リモート」は、AoEがLANの外部でルーティングできないため、「同じLANの内部」を意味します(これはiSCSIとの大きな違いです)。 AoEクライアント(イニシエーター)にとって、リモートストレージは通常のローカルに接続されたハードドライブのように見えます。

1予備メモ

ここでは2台のDebian8サーバーを使用しています:

  • server1.example.com(イニシエーター):IPアドレス192.168.1.100
  • server2.example.com(ターゲット):IPアドレス192.168.1.101

2両方のシステムにAoEカーネルモジュールをロードします

server1 / server2:

最初のステップとして、サーバー上のカーネルがATAOverEthernetをサポートしていることを確認する必要があります。 rootユーザーとして次のコマンドを実行します。

grep ATA_OVER /boot/config-`uname -r`

これは次のように表示されます:

[email protected]:/tmp# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
[email protected]:/tmp#

これは、AoEがカーネルモジュールとして組み込まれていることを意味します。次に、モジュールがロードされているかどうかを確認します:

lsmod | grep aoe

何も返されない場合、これはロードされていないことを意味します。この場合、次のようにロードできます。

modprobe aoe

モジュールがロードされているかどうかをもう一度確認しましょう:

lsmod | grep aoe
[email protected]:/tmp# lsmod | grep aoe
aoe 51917 0
[email protected]:/tmp#

システムの起動時にモジュールが自動的にロードされるようにするには、aoeモジュールを/ etc / modulesに追加します:

nano /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

aoe

3ターゲットの設定(server2)

server2:

まず、AoEターゲット(server2)を設定します:

apt-get install vblade

ストレージには、未使用の論理ボリューム、イメージファイル、ハードドライブ(例:/ dev / sdb)、ハードドライブパーティション(例:/ dev / sdb1)、またはRAIDデバイス(例:/ dev / md0)を使用できます。この例では、/storageフォルダーに保存されている20GBの画像ファイルを使用します。

mkdir /storage
dd if=/dev/zero of=/storage/storage1.img bs=1024k count=20000

これにより、20GBのサイズのイメージファイル/storage/storage1.imgが作成されます。

代わりに論理ボリュームを使用する場合は、次のように、ボリュームグループvg0にstorage1という名前の20GBのサイズの論理ボリュームを作成できます。

lvcreate -L20G -n storage1 vg0

次に、ストレージデバイスを次のようにエクスポートします。

vbladed 0 1 eth0 /storage/storage1.img

最初の番号(0)はシェルフ番号(メジャー)、2番目の番号(1)はスロット番号(マイナー)です。これらの番号をお好みに合わせて変更してください。各AoEデバイスは、(複数のデバイスをエクスポートする場合)一意である必要があるいくつかのメジャー/マイナーによって識別されます。メジャーは0〜65535で、マイナーは0〜255です。 eth0の部分は、使用するイーサネットデバイスをvbladedに指示します(イーサネットデバイスがeth1の場合は、eth1を使用します。実行するとイーサネットデバイスについて確認できます

ifconfig

ターゲットを起動するたびに自動的にエクスポートを開始するには、/ etc / rc.local ...

を開きます。
nano /etc/rc.local

...そしてそれに次の行を追加します(exit 0行の前):

[...]
/usr/sbin/vbladed 0 1 eth0 /storage/storage1.img
[...]

4 AoEクライアント/イニシエーター(server1)のセットアップ

server1:

server1に、イニシエーターをインストールします:

apt-get install aoetools

次に、使用可能なAoEストレージデバイスを確認します。

aoe-discover

心配しないでください。コマンドは出力を表示しません。コマンド:

aoe-stat

ストレージデバイスが表示されます:

[email protected]:/tmp# aoe-stat
e0.1 20.971GB eth0 1024 up
[email protected]:/tmp#

この時点で、/ dev / etherd/e0.1という名前のクライアントボックスで新しいブロックデバイスを使用できます。 / devツリーを見ると、新しいノードが表示されます:

ls -la /dev/etherd/
[email protected]:/tmp# ls -la /dev/etherd/
total 0
drwxr-xr-x 2 root root 160 Mar 22 08:46 .
drwxr-xr-x 19 root root 3160 Mar 22 08:34 ..
c-w--w---- 1 root disk 152, 3 Mar 22 08:34 discover
brw-rw---- 1 root disk 152, 0 Mar 22 08:46 e0.1
cr--r----- 1 root disk 152, 2 Mar 22 08:34 err
c-w--w---- 1 root disk 152, 6 Mar 22 08:34 flush
c-w--w---- 1 root disk 152, 4 Mar 22 08:34 interfaces
c-w--w---- 1 root disk 152, 5 Mar 22 08:34 revalidate
[email protected]:/tmp#

その/dev/etherd/e0.1デバイスを使用するには、フォーマットする必要があります:

fdisk /dev/etherd/e0.1
[email protected]:/tmp# fdisk /dev/etherd/e0.1
Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x2922f0be.
Command (m for help): <-- n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): <-- p
Partition number (1-4, default 1): <-- 1
First sector (2048-40959999, default 2048): <-- ENTER
Last sector, +sectors or +size{K,M,G,T,P} (2048-40959999, default 40959999): <-- ENTER
Created a new partition 1 of type 'Linux' and of size 19.5 GiB.
Command (m for help): <-- w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

次に、/ dev / etherd / e0.1p1 ...

にファイルシステムを作成します。
mkfs.ext4 /dev/etherd/e0.1p1
[email protected]:/tmp# mkfs.ext4 /dev/etherd/e0.1p1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 5119744 4k blocks and 1281120 inodes
Filesystem UUID: 2342cd83-bd45-4975-96c0-b0f366b73778
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

...そしてテスト目的でマウントします:

mount /dev/etherd/e0.1p1 /mnt

これで、...

の出力に新しいデバイスが表示されます。
mount
[email protected]:/tmp# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=125556,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=204220k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
/dev/etherd/e0.1p1 on /mnt type ext4 (rw,relatime,data=ordered)
[email protected]:/tmp#

...そして

df -h
[email protected]:/tmp# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 57G 1.1G 54G 2% /
udev 10M 0 10M 0% /dev
tmpfs 200M 4.6M 195M 3% /run
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
/dev/etherd/e0.1p1 20G 44M 19G 1% /mnt
[email protected]:/tmp#

次のようにマウントを解除できます:

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

...そしてそれに次の行を追加します(exit 0行の前):

[...]
aoe-discover
sleep 5
mount -a
[...]

テスト目的で、システムを再起動できるようになりました:

reboot

再起動後、デバイスをマウントする必要があります:

mount
[email protected]:/tmp# mount
[...snip...]
/dev/etherd/e0.1p1 on /storage type ext4 (rw,relatime,data=ordered)
[...snip...]
df -h
[email protected]:/tmp# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 57G 1.1G 54G 2% /
udev 10M 0 10M 0% /dev
tmpfs 200M 4.6M 195M 3% /run
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
/dev/etherd/e0.1p1 20G 44M 19G 1% /storage

これで、マウントされたパーティションでテスト書き込みを実行できます。

touch /storage/test.txt

ファイルが書き込まれているかどうかをlsコマンドで確認します:

ls -la /storage
[email protected]:/tmp# ls -la /storage
total 24
drwxr-xr-x 3 root root 4096 Mar 22 09:06 .
drwxr-xr-x 23 root root 4096 Mar 22 09:05 ..
drwx------ 2 root root 16384 Mar 22 09:00 lost+found
-rw-r--r-- 1 root root 0 Mar 22 09:06 test.txt
[email protected]:/tmp#

test.txtファイルは、server2からマウントしたボリュームに正常に書き込まれました。

  • AoEプロトコルの定義:http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
  • Debian:http://www.debian.org/

Debian
  1. Debian 9StretchLinuxでNTPサーバーとクライアントをセットアップする方法

  2. Debian8でLXCとクォータをサポートする仮想コンテナをセットアップする方法

  3. Ubuntu20.04およびDebian10でのISPConfigパーフェクトマルチサーバーのセットアップ

  1. Ubuntu 12.10(イニシエーターおよびターゲット)でのATA Over Ethernet(AoE)の使用

  2. DebianSqueezeでのATAOverEthernet(AoE)の使用(イニシエーターとターゲット)

  3. Ubuntu/Debianでmod_fcgidを使用してApacheとPhpをセットアップします

  1. Debian8ミニマリストDockerホストをインストールしてセットアップする方法

  2. CentOS 7(イニシエーターおよびターゲット)でのATA Over Ethernet(AoE)の使用

  3. Debian7VPSでExim4とDBMailを使用してメールサーバーをセットアップする方法