1 |
3 |
xianfeng |
The EtherDrive (R) HOWTO for users of 2.6 kernels is found at ...
|
2 |
|
|
|
3 |
|
|
http://www.coraid.com/support/linux/EtherDrive-2.6-HOWTO.html
|
4 |
|
|
|
5 |
|
|
It has many tips and hints!
|
6 |
|
|
|
7 |
|
|
The aoetools are userland programs that are designed to work with this
|
8 |
|
|
driver. The aoetools are on sourceforge.
|
9 |
|
|
|
10 |
|
|
http://aoetools.sourceforge.net/
|
11 |
|
|
|
12 |
|
|
The scripts in this Documentation/aoe directory are intended to
|
13 |
|
|
document the use of the driver and are not necessary if you install
|
14 |
|
|
the aoetools.
|
15 |
|
|
|
16 |
|
|
|
17 |
|
|
CREATING DEVICE NODES
|
18 |
|
|
|
19 |
|
|
Users of udev should find the block device nodes created
|
20 |
|
|
automatically, but to create all the necessary device nodes, use the
|
21 |
|
|
udev configuration rules provided in udev.txt (in this directory).
|
22 |
|
|
|
23 |
|
|
There is a udev-install.sh script that shows how to install these
|
24 |
|
|
rules on your system.
|
25 |
|
|
|
26 |
|
|
If you are not using udev, two scripts are provided in
|
27 |
|
|
Documentation/aoe as examples of static device node creation for
|
28 |
|
|
using the aoe driver.
|
29 |
|
|
|
30 |
|
|
rm -rf /dev/etherd
|
31 |
|
|
sh Documentation/aoe/mkdevs.sh /dev/etherd
|
32 |
|
|
|
33 |
|
|
... or to make just one shelf's worth of block device nodes ...
|
34 |
|
|
|
35 |
|
|
sh Documentation/aoe/mkshelf.sh /dev/etherd 0
|
36 |
|
|
|
37 |
|
|
There is also an autoload script that shows how to edit
|
38 |
|
|
/etc/modprobe.conf to ensure that the aoe module is loaded when
|
39 |
|
|
necessary.
|
40 |
|
|
|
41 |
|
|
USING DEVICE NODES
|
42 |
|
|
|
43 |
|
|
"cat /dev/etherd/err" blocks, waiting for error diagnostic output,
|
44 |
|
|
like any retransmitted packets.
|
45 |
|
|
|
46 |
|
|
"echo eth2 eth4 > /dev/etherd/interfaces" tells the aoe driver to
|
47 |
|
|
limit ATA over Ethernet traffic to eth2 and eth4. AoE traffic from
|
48 |
|
|
untrusted networks should be ignored as a matter of security. See
|
49 |
|
|
also the aoe_iflist driver option described below.
|
50 |
|
|
|
51 |
|
|
"echo > /dev/etherd/discover" tells the driver to find out what AoE
|
52 |
|
|
devices are available.
|
53 |
|
|
|
54 |
|
|
These character devices may disappear and be replaced by sysfs
|
55 |
|
|
counterparts. Using the commands in aoetools insulates users from
|
56 |
|
|
these implementation details.
|
57 |
|
|
|
58 |
|
|
The block devices are named like this:
|
59 |
|
|
|
60 |
|
|
e{shelf}.{slot}
|
61 |
|
|
e{shelf}.{slot}p{part}
|
62 |
|
|
|
63 |
|
|
... so that "e0.2" is the third blade from the left (slot 2) in the
|
64 |
|
|
first shelf (shelf address zero). That's the whole disk. The first
|
65 |
|
|
partition on that disk would be "e0.2p1".
|
66 |
|
|
|
67 |
|
|
USING SYSFS
|
68 |
|
|
|
69 |
|
|
Each aoe block device in /sys/block has the extra attributes of
|
70 |
|
|
state, mac, and netif. The state attribute is "up" when the device
|
71 |
|
|
is ready for I/O and "down" if detected but unusable. The
|
72 |
|
|
"down,closewait" state shows that the device is still open and
|
73 |
|
|
cannot come up again until it has been closed.
|
74 |
|
|
|
75 |
|
|
The mac attribute is the ethernet address of the remote AoE device.
|
76 |
|
|
The netif attribute is the network interface on the localhost
|
77 |
|
|
through which we are communicating with the remote AoE device.
|
78 |
|
|
|
79 |
|
|
There is a script in this directory that formats this information
|
80 |
|
|
in a convenient way. Users with aoetools can use the aoe-stat
|
81 |
|
|
command.
|
82 |
|
|
|
83 |
|
|
root@makki root# sh Documentation/aoe/status.sh
|
84 |
|
|
e10.0 eth3 up
|
85 |
|
|
e10.1 eth3 up
|
86 |
|
|
e10.2 eth3 up
|
87 |
|
|
e10.3 eth3 up
|
88 |
|
|
e10.4 eth3 up
|
89 |
|
|
e10.5 eth3 up
|
90 |
|
|
e10.6 eth3 up
|
91 |
|
|
e10.7 eth3 up
|
92 |
|
|
e10.8 eth3 up
|
93 |
|
|
e10.9 eth3 up
|
94 |
|
|
e4.0 eth1 up
|
95 |
|
|
e4.1 eth1 up
|
96 |
|
|
e4.2 eth1 up
|
97 |
|
|
e4.3 eth1 up
|
98 |
|
|
e4.4 eth1 up
|
99 |
|
|
e4.5 eth1 up
|
100 |
|
|
e4.6 eth1 up
|
101 |
|
|
e4.7 eth1 up
|
102 |
|
|
e4.8 eth1 up
|
103 |
|
|
e4.9 eth1 up
|
104 |
|
|
|
105 |
|
|
Use /sys/module/aoe/parameters/aoe_iflist (or better, the driver
|
106 |
|
|
option discussed below) instead of /dev/etherd/interfaces to limit
|
107 |
|
|
AoE traffic to the network interfaces in the given
|
108 |
|
|
whitespace-separated list. Unlike the old character device, the
|
109 |
|
|
sysfs entry can be read from as well as written to.
|
110 |
|
|
|
111 |
|
|
It's helpful to trigger discovery after setting the list of allowed
|
112 |
|
|
interfaces. The aoetools package provides an aoe-discover script
|
113 |
|
|
for this purpose. You can also directly use the
|
114 |
|
|
/dev/etherd/discover special file described above.
|
115 |
|
|
|
116 |
|
|
DRIVER OPTIONS
|
117 |
|
|
|
118 |
|
|
There is a boot option for the built-in aoe driver and a
|
119 |
|
|
corresponding module parameter, aoe_iflist. Without this option,
|
120 |
|
|
all network interfaces may be used for ATA over Ethernet. Here is a
|
121 |
|
|
usage example for the module parameter.
|
122 |
|
|
|
123 |
|
|
modprobe aoe_iflist="eth1 eth3"
|