このガイドでは、Ubuntu 12.10を実行しているAoEターゲットとAoEイニシエーター(クライアント)をセットアップする方法について説明します。 AoEは「ATAoverEthernet」の略で、AoEイニシエーターが通常のイーサネットケーブルを使用して(リモート)AoEターゲット上のストレージデバイスを使用できるようにするストレージエリアネットワーク(SAN)プロトコルです。この場合の「リモート」は、AoEがLANの外部でルーティングできないため、「同じLANの内部」を意味します(これはiSCSIとの大きな違いです)。 AoEイニシエーターにとって、リモートストレージは通常のローカルに接続されたハードドライブのように見えます。
これがあなたのために働くという保証はありません!
1予備メモ
ここでは2台のUbuntu12.10サーバーを使用しています:
- 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 26960 0
[メールで保護]:〜#
システムの起動時にモジュールが自動的にロードされるようにするには、aoeモジュールを/ etc / modulesに追加します:
vi / etc / modules
#/ etc / modules:起動時にロードするカーネルモジュール。##このファイルには、起動時にロードする必要のあるカーネルモジュールの名前が含まれています。時間、1行に1つ。 「#」で始まる行は無視されます。looplprtcaoe |
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行の前):
[...] 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 1602012-10-0116:24。
drwxr-xr-x 16 root root 3800 2012-10-01 16:21 ..
c-w--w ---- 1 root disk 152、3 2012-10-01 16:21 Discover
brw-rw ---- 1ルートディスク152、16 2012-10-01 16:24 e0.1
cr--r ----- 1ルートディスク152、2 2012-10-01 16: 21エラー
c-w--w----1ルートディスク152、62012-10-0116:21フラッシュ
c-w--w----1ルートディスク152、4 2012-10 -0116:21インターフェース
c-w--w---- 1ルートディスク152、5 2012-10-0116:21再検証
[メール保護]:〜#
の出力で
fdisk -l </ pre>これで、新しいハードドライブも見つかるはずです:
[メール保護]:〜#fdisk -l <br />
ディスク/dev/ sda:32.2 GB、32212254720バイト
255ヘッド、63セクター/トラック、3916シリンダー
単位=16065のシリンダー*512=8225280バイト
セクターサイズ(論理/物理):512バイト/512バイト
I / Oサイズ(最小/最適):512バイト/512バイト
ディスク識別子:0x00016be9
Device Boot Start End Blocks Id System
/ dev / sda1 * yl * yl 32 ed /> ed 83 /> ed 1 /> 32 32 / dev / sda2 32 3917312053775拡張
/dev / sda5 32 dev 32 L /> 36 <ユニット=16065のシリンダー*512 =8225280バイト
セクターサイズ(論理/物理):512バイト/512バイト
I / Oサイズ(最小/最適):512バイト/ 512バイト
ディスク識別子:0x00000000
Di sk /dev/etherd/e0.1には、有効なパーティションテーブルが含まれていません
[メールで保護]:〜#そのデバイスを使用するには、フォーマットする必要があります:
fdisk /dev/etherd/e0.1[メールで保護]:〜#fdisk /dev/etherd/e0.1
デバイスには、有効なDOSパーティションテーブルも、Sun、SGI、OSFディスクラベルも含まれていません。
ディスク識別子0x3093ae28を使用して新しいDOSディスクラベルを作成します。
変更は、書き込みを決定するまで、メモリにのみ残ります。
その後、もちろん、以前のコンテンツは復元できません。
警告:無効なフラグ0x0000パーティションテーブル4の一部は、w(rite)によって修正されます
警告:DOS互換モードは廃止されました。
モードをオフにして(コマンド「c」)、表示単位を
セクターに変更することを強くお勧めします(コマンド「u」)。
コマンド(ヘルプの場合はm): <-n
コマンドアクション
e拡張
pプライマリパーティション(1-4)
<-p
パーティション番号(1-4):<- -1
最初のシリンダー(1-2610、デフォルト1):<-ENTER
デフォルト値1を使用
最後のシリンダー、+シリンダー、または+ size {K、M、G}(1 -2610、デフォルト2610):<-ENTER
デフォルト値の使用2610
コマンド(ヘルプの場合はm):<-t
選択したパーティション1
六角形コード(コードを一覧表示するには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バイト
ディスク識別子:0x00016be9
Device Boot Start End Blocks Id System
/ dev / sda1 * yl * yl 32 ed /> ed 83 /> ed 1 /> 32 32 / dev / sda2 32 3917312053775拡張
/dev / sda5 32 dev 32 L /> 36 <ユニット=16065のシリンダー*512 =8225280バイト
セクターサイズ(論理/物理):512バイト/512バイト
I / Oサイズ(最小/最適):512バイト/ 512バイト
ディスク識別子:0x3093ae28
デバイスブート開始終了ブロックIdシステム
/dev/etherd/e0.1p11 Linux <> 2610 /> 20964793+ 83次に、/ dev / etherd / e0.1p1 ...
にファイルシステムを作成します。mkfs.ext4 /dev/etherd/e0.1p1...そしてテスト目的でマウントします:
マウント/dev/etherd/e0.1p1/mntこれで、...
の出力に新しいデバイスが表示されます。マウント[email protected]:〜#mount
/ dev / mapper / server1-root on / type ext4(rw、errors =remount-ro)
proc on / proc type proc(rw、noexec 、nosuid、nodev)
none on / sys type sysfs(rw、noexec、nosuid、nodev)
none on / sys / fs / Fuse / connections type fusectl(rw)
none on / sys / kernel / debug type debugfs(rw)
none on / sys / kernel / security type securityfs(rw)
none on / dev type devtmpfs(rw、mode =0755)
none on / dev / ptsタイプdevpts(rw、noexec、nosuid、gid =5、mode =0620)
/ dev / shmタイプtmpfs(rw、nosuid、nodev)ではなし
/ var/runではなしタイプtmpfs(rw、nosuid、mode =0755)
none on / var / lockタイプtmpfs(rw、noexec、nosuid、nodev)
none on / lib / init / rwタイプtmpfs(rw、nosuid 、mode =0755)
none on / var / lib / ureadahead / debugfs type debugfs(rw、relatime)
/ dev / sda1 on / boot type ext2(rw)
/ dev / etherd /e0.1p1 on / mnt type ext4(rw)
[email protected]:〜#...そして
df -h[メールで保護]:〜#df -h
Filesystem Used Available Use%Mounted on
/ dev / mapper / server1-root
br /> M 16 <8 G 83>なし243M 180K 242M 1%/ devの
なし247M 0 247M 0%は/ dev / SHM
なし247M 32K 247M 1%/ VAR /実行
なし247M 0 247M 0%/ VAR /ロック
なし247M0247M 0%/ lib / init / rw
なし
/dev/etherd/e0.1p1 20G 172M 19G 1%/ mnt
[メール保護]:〜#次のようにマウントを解除できます:
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 / mapper / server1-root on / type ext4(rw、errors =remount-ro)
proc on / proc type proc(rw、noexec 、nosuid、nodev)
none on / sys type sysfs(rw、noexec、nosuid、nodev)
none on / sys / fs / Fuse / connections type fusectl(rw)
none on / sys / kernel / debug type debugfs(rw)
none on / sys / kernel / security type securityfs(rw)
none on / dev type devtmpfs(rw、mode =0755)
none on / dev / ptsタイプdevpts(rw、noexec、nosuid、gid =5、mode =0620)
/ dev / shmタイプtmpfs(rw、nosuid、nodev)ではなし
/ var/runではなしタイプtmpfs(rw、nosuid、mode =0755)
none on / var / lockタイプtmpfs(rw、noexec、nosuid、nodev)
none on / lib / init / rwタイプtmpfs(rw、nosuid 、mode =0755)
none on / var / lib / ureadahead / debugfs type debugfs(rw、relatime)
/ dev / sda1 on / boot type ext2(rw)
/ dev / etherd /e0.1p1 on / storage type ext4(rw、_netdev)
[email protected]:〜#
df -h
[メールで保護]:〜#df -h
Filesystem Used Available Use%Mounted on
/ dev / mapper / server1-root
br /> M 16 <8 G 83>なし243M 180K 242M 1%/ devの
なし247M 0 247M 0%は/ dev / SHM
なし247M 32K 247M 1%/ VAR /実行
なし247M 0 247M 0%/ VAR /ロック
なし247M0247M 0%/ lib / init / rw
なし
/dev/etherd/e0.1p1 20G 172M 19G 1%/ storage
[メール保護]:〜#
5つのリンク
- AoEプロトコルの定義:http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
- Ubuntu:http://www.ubuntu.com/