このガイドでは、Debian Squeezeを実行しているAoEターゲットとAoEイニシエーター(クライアント)をセットアップする方法について説明します。 AoEは「ATAoverEthernet」の略で、AoEイニシエーターが通常のイーサネットケーブルを使用して(リモート)AoEターゲット上のストレージデバイスを使用できるようにするストレージエリアネットワーク(SAN)プロトコルです。この場合の「リモート」は、AoEがLANの外部でルーティングできないため、「同じLANの内部」を意味します(これはiSCSIとの大きな違いです)。 AoEイニシエーターにとって、リモートストレージは通常のローカルに接続されたハードドライブのように見えます。
1予備メモ
ここでは2台のDebianSqueezeサーバーを使用しています:
- server1.example.com(イニシエーター):IPアドレス192.168.0.100
- server2.example.com(ターゲット):IPアドレス192.168.0.101
2両方のシステムでのaoeカーネルモジュールのロード
server1 / server2:
始める前に、カーネルがAoEをサポートしていることを確認する必要があります:
grep ATA_OVER / boot / config-`uname -r`
これは次のように表示されます:
[メール保護]:〜#grep ATA_OVER / boot / config-`uname -r`
CONFIG_ATA_OVER_ETH =m
[メール保護]:〜#
これは、AoEがカーネルモジュールとして構築されたことを意味します。モジュールがすでにロードされているかどうかを確認しましょう:
lsmod | grep aoe
何も返されない場合、これはロードされていないことを意味します。この場合、次のようにロードできます:
modprobe aoe
モジュールがロードされているかどうかをもう一度確認しましょう:
lsmod | grep aoe
[メール保護]:〜#lsmod | grep aoe
aoe 21380 0
[メール保護]:〜#
システムの起動時にモジュールが自動的にロードされるようにするには、aoeモジュールを/ etc / modulesに追加します:
vi / etc / modules
#/ etc / modules:起動時にロードするカーネルモジュール。##このファイルには、起動時にロードする必要のあるカーネルモジュールの名前が含まれています。時間、1行に1つ。 「#」で始まる行は無視されます。#パラメータはモジュール名の後に指定できます。aoeloop |
3ターゲットの設定(server2)
server2:
まず、ターゲット(server2)を設定します:
apt-get install vblade
ストレージには、未使用の論理ボリューム、イメージファイル、ハードドライブ(例:/ dev / sdb)、ハードドライブパーティション(例:/ dev / sdb1)、またはRAIDデバイス(例:/ dev / md0)を使用できます。この例では、ボリュームグループvg0にstorage1という名前の20GBの論理ボリュームを作成します。
lvcreate -L20G -n storage1 vg0
(画像ファイルを使用する場合は、次のように作成できます:
mkdir / storage
dd if =/ dev / zero of =/ storage / storage1.img bs =1024k count =20000
これにより、20GBのサイズのイメージファイル/storage/storage1.imgが作成されます。
)
次に、ストレージデバイスを次のようにエクスポートします。
vbladed 0 1 eth0 / dev / vg0 / storage1
最初の番号(0)はシェルフ番号(メジャー)、2番目の番号(1)はスロット番号(マイナー)です。これらの番号をお好みに合わせて変更してください。各AoEデバイスは、(複数のデバイスをエクスポートする場合)一意である必要があるいくつかのメジャー/マイナーによって識別されます。メジャーは0〜65535で、マイナーは0〜255です。 eth0の部分は、使用するイーサネットデバイスをvbladedに指示します(イーサネットデバイスがeth1の場合は、eth1を使用します。実行するとイーサネットデバイスについて確認できます
ifconfig
。
ターゲットを起動するたびに自動的にエクスポートを開始するには、/ etc / rc.local ...
を開きます。vi /etc/rc.local
...そしてそれに次の行を追加します(exit 0行の前):
[...] / usr / sbin / vbladed 0 1 eth0 / dev / vg0 / storage1 [...] |
4イニシエーター(server1)のセットアップ
server1:
server1に、イニシエーターをインストールします:
apt-get install aoetools
次に、使用可能なAoEストレージデバイスを確認します。
aoe-discover
コマンド
aoe-stat
ストレージデバイスが表示されます:
[メール保護]:〜#aoe-stat
e0.1 21.474GB eth0 up
[メール保護]:〜#
この時点で、/ dev / etherd/e0.1という名前のクライアントボックスで新しいブロックデバイスを使用できます。 / devツリーを見ると、新しいノードが表示されます:
ls -la / dev / etherd /
[メールで保護]:〜#ls -la / dev / etherd /
total 0
drwxr-xr-x 2 root root 160 Mar1613:34。
drwxr-xr -x 14 root root 3000 Mar 16 13:33 ..
c-w--w ---- 1 root disk 152、3 Mar 16 13:33 Discover
brw-rw ---- 1 root .. disk 152、16 Mar 16 13:34 e0.1
cr--r ----- 1 root disk 152、2 Mar 16 13:33 err
c-w--w ---- 1ルートディスク152、16年3月6日13:33フラッシュ
c-w--w ---- 1ルートディスク152、16年3月4日13:33インターフェース
c-w--w----1ルートディスク152、5 Mar 16 13:33 revalidate
[email protected]:〜#
の出力で
fdisk -l </ pre>これで、新しいハードドライブも見つかるはずです:
[メール保護]:〜#fdisk -l <br />
ディスク/dev/ sda:32.2 GB、32212254720バイト
255ヘッド、63セクター/トラック、3916シリンダー
単位=16065のシリンダー*512=8225280バイト
セクターサイズ(論理/物理):512バイト/512バイト
I / Oサイズ(最小/最適):512バイト/512バイト
ディスク識別子:0x00029d5c
デバイスのブート開始終了ブロックIDは、システム
は/ dev / sda1を* 1 3793 30461952 83 Linuxの
は/ dev / sda2は3793 3917 992257 5拡張
/ dev / sda5 3793 37939225682Linuxスワップ/Solaris
ディスク/dev/ etherd / e0.1:21.5 GB、21474836480バイト
255ヘッド、63 br/>単位=16065のシリンダー*512=8225280バイト
セクターサイズ(論理/物理):512バイト/512バイト
I / Oサイズ(最小/最適):512バイト/512バイト
ディスク識別子:0x00000000
ディスク/dev/etherd/e0.1にはvalが含まれていませんidパーティションテーブル
[メール保護]:〜#そのデバイスを使用するには、フォーマットする必要があります:
fdisk /dev/etherd/e0.1[メールで保護]:〜#fdisk /dev/etherd/e0.1
デバイスには、有効なDOSパーティションテーブルも、Sun、SGI、OSFディスクラベルも含まれていません。
ディスク識別子0xa00b110dを使用して新しいDOSディスクラベルを作成します。
変更は、書き込みを決定するまで、メモリにのみ残ります。
その後、もちろん、以前のコンテンツは復元できなくなります。
このディスクのシリンダー数は2610に設定されています。
これに問題はありませんが、これは1024を超えており、
特定のセットアップでは、次の問題が発生する可能性があります。
1)ソフトウェア起動時に実行されます(例:古いバージョンのLILO)
2)他のOSからのソフトウェアの起動とパーティション分割
(例:DOS FDISK、OS / 2 FDISK)
警告:無効なフラグ0x0000パーティションテーブル4は、w(rite)によって修正されます
コマンド(ヘルプの場合はm):<-n
コマンドアクション
e拡張
pプライマリパーティション( 1-4)
<-p
パーティション番号(1-4):<-1
最初のシリンダー(1-2610、デフォルト1):<-E NTER
デフォルト値1を使用
最後のシリンダーまたは+sizeまたは+sizeMまたは+sizeK(1-2610、デフォルト2610):<-ENTER
デフォルト値2610を使用
コマンド(ヘルプの場合はm):<-t
選択したパーティション1
Hexコード(コードを一覧表示するにはLと入力):<-83
コマンド(mヘルプが必要です):<-w
パーティションテーブルが変更されました!
ioctl()を呼び出してパーティションテーブルを再読み込みします。
ディスクを同期しています。
[メールで保護]:〜#その後、
の出力fdisk -l </ pre>次のようになります:
[メール保護]:〜#fdisk -l <br />
ディスク/dev/ sda:32.2 GB、32212254720バイト
255ヘッド、63セクター/トラック、3916シリンダー
単位=16065のシリンダー*512=8225280バイト
セクターサイズ(論理/物理):512バイト/512バイト
I / Oサイズ(最小/最適):512バイト/512バイト
ディスク識別子:0x00029d5c
デバイスのブート開始終了ブロックIDは、システム
は/ dev / sda1を* 1 3793 30461952 83 Linuxの
は/ dev / sda2は3793 3917 992257 5拡張
/ dev / sda5 3793 37939225682Linuxスワップ/Solaris
ディスク/dev/ etherd / e0.1:21.5 GB、21474836480バイト
255ヘッド、63 br/>単位=16065のシリンダー*512=8225280バイト
セクターサイズ(論理/物理):512バイト/512バイト
I / Oサイズ(最小/最適):512バイト/512バイト
ディスク識別子:0x0cf58b15
デバイスの起動開始End Blocks Id System
/dev/etherd/e0.1p1 1 2610 20964793+ 83 Linux
[メール保護]:〜#次に、/ dev / etherd / e0.1p1 ...
にファイルシステムを作成します。mkfs.ext4 /dev/etherd/e0.1p1...そしてテスト目的でマウントします:
マウント/dev/etherd/e0.1p1/mntこれで、...
の出力に新しいデバイスが表示されます。マウント[email protected]:〜#mount
/ dev / sda1 on / type ext3(rw、errors =remount-ro)
tmpfs on / lib / init / rw type tmpfs(rw、nosuid 、mode =0755)
proc on / proc type proc(rw、noexec、nosuid、nodev)
sysfs on / sys type sysfs(rw、noexec、nosuid、nodev)
udev on / dev type tmpfs(rw、mode =0755)
tmpfs on / dev / shm type tmpfs(rw、nosuid、nodev)
devpts on / dev / pts type devpts(rw、noexec、nosuid、gid =5、mode =620)
/dev/etherd/e0.1p1 on / mnt type ext4(rw)
[email protected]:〜#...そして
df -h[メールで保護]:〜#df -h
ファイルシステム使用済み使用率%マウント済み
/ dev / sda1 249 fs 29G 806M 27G 3%/
lib / init / rw
udev 244M 108K 244M 1%/ dev
tmpfs 249M 249M 0 249M 0%/ dev / shm
[メールで保護]:〜#次のようにマウントを解除できます:
umount / mnt起動時にデバイスを自動的にマウントするには、たとえばディレクトリ/storageに、そのディレクトリを作成します...
mkdir / storage...そして/etc/fstabに次の行を追加します。
vi / etc / fstab
[...] / dev / etherd / e0.1p1 / storage ext4 defaults、auto、_netdev 0 0 |
/ etc / fstabが読み取られた後にAoEのものがロードされるため、これだけでは起動時にデバイスをマウントするのに十分ではありません。したがって、/ etc / rc.local ...
を開きます。vi /etc/rc.local
...そしてそれに次の行を追加します(exit 0行の前):
[...] aoe-discoversleep 5mount -a [...] |
テスト目的で、システムを再起動できるようになりました:
再起動
再起動後、デバイスをマウントする必要があります:
マウント
[email protected]:〜#mount
/ dev / sda1 on / type ext3(rw、errors =remount-ro)
tmpfs on / lib / init / rw type tmpfs(rw、nosuid 、mode =0755)
proc on / proc type proc(rw、noexec、nosuid、nodev)
sysfs on / sys type sysfs(rw、noexec、nosuid、nodev)
udev on / dev type tmpfs(rw、mode =0755)
tmpfs on / dev / shm type tmpfs(rw、nosuid、nodev)
devpts on / dev / pts type devpts(rw、noexec、nosuid、gid =5、mode =620)
/dev/etherd/e0.1p1 on / storage type ext4(rw、_netdev)
[email protected]:〜#
df -h
[メールで保護]:〜#df -h
ファイルシステム使用済み使用率%マウント済み
/ dev / sda1 249 fs 29G 806M 27G 3%/
lib / init / rw
udev 244M 108K 244M 1%/ dev
tmpfs 249M 249M 0 249M 0%/ dev / shm
[メールで保護]:〜#
5つのリンク
- AoEプロトコルの定義:http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
- Debian:http://www.debian.org/