ia64/linux-2.6.18-xen.hg

view Documentation/aoe/aoe.txt @ 897:329ea0ccb344

balloon: try harder to balloon up under memory pressure.

Currently if the balloon driver is unable to increase the guest's
reservation it assumes the failure was due to reaching its full
allocation, gives up on the ballooning operation and records the limit
it reached as the "hard limit". The driver will not try again until
the target is set again (even to the same value).

However it is possible that ballooning has in fact failed due to
memory pressure in the host and therefore it is desirable to keep
attempting to reach the target in case memory becomes available. The
most likely scenario is that some guests are ballooning down while
others are ballooning up and therefore there is temporary memory
pressure while things stabilise. You would not expect a well behaved
toolstack to ask a domain to balloon to more than its allocation nor
would you expect it to deliberately over-commit memory by setting
balloon targets which exceed the total host memory.

This patch drops the concept of a hard limit and causes the balloon
driver to retry increasing the reservation on a timer in the same
manner as when decreasing the reservation.

Also if we partially succeed in increasing the reservation
(i.e. receive less pages than we asked for) then we may as well keep
those pages rather than returning them to Xen.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Fri Jun 05 14:01:20 2009 +0100 (2009-06-05)
parents 831230e53067
children
line source
1 The EtherDrive (R) HOWTO for users of 2.6 kernels is found at ...
3 http://www.coraid.com/support/linux/EtherDrive-2.6-HOWTO.html
5 It has many tips and hints!
7 The aoetools are userland programs that are designed to work with this
8 driver. The aoetools are on sourceforge.
10 http://aoetools.sourceforge.net/
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.
17 CREATING DEVICE NODES
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).
23 There is a udev-install.sh script that shows how to install these
24 rules on your system.
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.
30 rm -rf /dev/etherd
31 sh Documentation/aoe/mkdevs.sh /dev/etherd
33 ... or to make just one shelf's worth of block device nodes ...
35 sh Documentation/aoe/mkshelf.sh /dev/etherd 0
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.
41 USING DEVICE NODES
43 "cat /dev/etherd/err" blocks, waiting for error diagnostic output,
44 like any retransmitted packets.
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.
51 "echo > /dev/etherd/discover" tells the driver to find out what AoE
52 devices are available.
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.
58 The block devices are named like this:
60 e{shelf}.{slot}
61 e{shelf}.{slot}p{part}
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".
67 USING SYSFS
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.
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.
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.
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
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.
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.
116 DRIVER OPTIONS
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.
123 modprobe aoe_iflist="eth1 eth3"