| ATA over Ethernet is a network protocol that provides simple access to | |
| block storage on the LAN. | |
| http://support.coraid.com/documents/AoEr11.txt | |
| The EtherDrive (R) HOWTO for 2.6 and 3.x kernels is found at ... | |
| http://support.coraid.com/support/linux/EtherDrive-2.6-HOWTO.html | |
| It has many tips and hints! Please see, especially, recommended | |
| tunings for virtual memory: | |
| http://support.coraid.com/support/linux/EtherDrive-2.6-HOWTO-5.html#ss5.19 | |
| The aoetools are userland programs that are designed to work with this | |
| driver. The aoetools are on sourceforge. | |
| http://aoetools.sourceforge.net/ | |
| The scripts in this Documentation/aoe directory are intended to | |
| document the use of the driver and are not necessary if you install | |
| the aoetools. | |
| CREATING DEVICE NODES | |
| Users of udev should find the block device nodes created | |
| automatically, but to create all the necessary device nodes, use the | |
| udev configuration rules provided in udev.txt (in this directory). | |
| There is a udev-install.sh script that shows how to install these | |
| rules on your system. | |
| There is also an autoload script that shows how to edit | |
| /etc/modprobe.d/aoe.conf to ensure that the aoe module is loaded when | |
| necessary. Preloading the aoe module is preferable to autoloading, | |
| however, because AoE discovery takes a few seconds. It can be | |
| confusing when an AoE device is not present the first time the a | |
| command is run but appears a second later. | |
| USING DEVICE NODES | |
| "cat /dev/etherd/err" blocks, waiting for error diagnostic output, | |
| like any retransmitted packets. | |
| "echo eth2 eth4 > /dev/etherd/interfaces" tells the aoe driver to | |
| limit ATA over Ethernet traffic to eth2 and eth4. AoE traffic from | |
| untrusted networks should be ignored as a matter of security. See | |
| also the aoe_iflist driver option described below. | |
| "echo > /dev/etherd/discover" tells the driver to find out what AoE | |
| devices are available. | |
| In the future these character devices may disappear and be replaced | |
| by sysfs counterparts. Using the commands in aoetools insulates | |
| users from these implementation details. | |
| The block devices are named like this: | |
| e{shelf}.{slot} | |
| e{shelf}.{slot}p{part} | |
| ... so that "e0.2" is the third blade from the left (slot 2) in the | |
| first shelf (shelf address zero). That's the whole disk. The first | |
| partition on that disk would be "e0.2p1". | |
| USING SYSFS | |
| Each aoe block device in /sys/block has the extra attributes of | |
| state, mac, and netif. The state attribute is "up" when the device | |
| is ready for I/O and "down" if detected but unusable. The | |
| "down,closewait" state shows that the device is still open and | |
| cannot come up again until it has been closed. | |
| The mac attribute is the ethernet address of the remote AoE device. | |
| The netif attribute is the network interface on the localhost | |
| through which we are communicating with the remote AoE device. | |
| There is a script in this directory that formats this information in | |
| a convenient way. Users with aoetools should use the aoe-stat | |
| command. | |
| root@makki root# sh Documentation/aoe/status.sh | |
| e10.0 eth3 up | |
| e10.1 eth3 up | |
| e10.2 eth3 up | |
| e10.3 eth3 up | |
| e10.4 eth3 up | |
| e10.5 eth3 up | |
| e10.6 eth3 up | |
| e10.7 eth3 up | |
| e10.8 eth3 up | |
| e10.9 eth3 up | |
| e4.0 eth1 up | |
| e4.1 eth1 up | |
| e4.2 eth1 up | |
| e4.3 eth1 up | |
| e4.4 eth1 up | |
| e4.5 eth1 up | |
| e4.6 eth1 up | |
| e4.7 eth1 up | |
| e4.8 eth1 up | |
| e4.9 eth1 up | |
| Use /sys/module/aoe/parameters/aoe_iflist (or better, the driver | |
| option discussed below) instead of /dev/etherd/interfaces to limit | |
| AoE traffic to the network interfaces in the given | |
| whitespace-separated list. Unlike the old character device, the | |
| sysfs entry can be read from as well as written to. | |
| It's helpful to trigger discovery after setting the list of allowed | |
| interfaces. The aoetools package provides an aoe-discover script | |
| for this purpose. You can also directly use the | |
| /dev/etherd/discover special file described above. | |
| DRIVER OPTIONS | |
| There is a boot option for the built-in aoe driver and a | |
| corresponding module parameter, aoe_iflist. Without this option, | |
| all network interfaces may be used for ATA over Ethernet. Here is a | |
| usage example for the module parameter. | |
| modprobe aoe_iflist="eth1 eth3" | |
| The aoe_deadsecs module parameter determines the maximum number of | |
| seconds that the driver will wait for an AoE device to provide a | |
| response to an AoE command. After aoe_deadsecs seconds have | |
| elapsed, the AoE device will be marked as "down". A value of zero | |
| is supported for testing purposes and makes the aoe driver keep | |
| trying AoE commands forever. | |
| The aoe_maxout module parameter has a default of 128. This is the | |
| maximum number of unresponded packets that will be sent to an AoE | |
| target at one time. | |
| The aoe_dyndevs module parameter defaults to 1, meaning that the | |
| driver will assign a block device minor number to a discovered AoE | |
| target based on the order of its discovery. With dynamic minor | |
| device numbers in use, a greater range of AoE shelf and slot | |
| addresses can be supported. Users with udev will never have to | |
| think about minor numbers. Using aoe_dyndevs=0 allows device nodes | |
| to be pre-created using a static minor-number scheme with the | |
| aoe-mkshelf script in the aoetools. |