1.Установка LXС и необходимых утилит
1 |
# apt-get install lxc bridge-utils libvirt-bin debootstrap |
Проверка наличия и расположения cgroup( в Debian/Ubuntu cgroup уже смонтирована)
1 |
# mount -l | grep cgroup |
1 2 3 4 5 6 7 8 9 |
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) |
В данном случае cgroup расположен в /sys/fs
Если cgroup не смонтирован,то монтируем вручную
1 |
# nano /etc/fstab |
1 |
cgroup /sys/fs/cgroup cgroup defaults 0 0 |
1 |
# mount -a |
Проверка поддержки разделения виртуальной памяти
1 |
# mount -l | grep cgroup | grep memory |
1 |
# |
Включение поддержки разделения виртуальной памяти
1 |
# nano /etc/default/grub |
1 |
GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory swapaccount=1" |
Обновление загрузчика и перезагрузка
1 |
# update-grub |
1 |
# reboot |
Проверка параметров LXC/корректность установки LXC
1 |
# lxc-checkconfig |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Kernel configuration not found at /proc/config.gz; searching... Kernel configuration found at /boot/config-3.16.0-4-amd64 --- Namespaces --- Namespaces: enabled Utsname namespace: enabled Ipc namespace: enabled Pid namespace: enabled User namespace: enabled Network namespace: enabled Multiple /dev/pts instances: enabled --- Control groups --- Cgroup: enabled Cgroup clone_children flag: enabled Cgroup device: enabled Cgroup sched: enabled Cgroup cpu account: enabled Cgroup memory controller: enabled Cgroup cpuset: enabled --- Misc --- Veth pair device: enabled Macvlan: enabled Vlan: enabled File capabilities: enabled |
Размещение LXC-данных
1 |
/var/lib/lxc |
— размещенеие контейнеров, их настройки, ФС и так далее;
1 |
/etc/lxc |
— прочие настройки;
1 |
/etc/default/lxc-net |
— изменение настроек сети;
1 |
/var/cache/lxc |
— кэш шаблонов;
1 |
/var/lib/lxcsnaps |
— размещение snapshot-ов;
1 |
/var/log/lxc |
— логи;
Файл конфигурации контейнера размещается по пути
1 |
/var/lib/lxc/<имя контейнера>/config |
Просмотр шаблонов операционных систем возможных для установки
1 |
# ls -l /usr/share/lxc/templates/ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
total 336 -rwxr-xr-x 1 root root 10789 Nov 14 2015 lxc-alpine -rwxr-xr-x 1 root root 13533 Nov 14 2015 lxc-altlinux -rwxr-xr-x 1 root root 10253 Nov 14 2015 lxc-archlinux -rwxr-xr-x 1 root root 9446 Nov 14 2015 lxc-busybox -rwxr-xr-x 1 root root 28932 Nov 14 2015 lxc-centos -rwxr-xr-x 1 root root 10150 Nov 14 2015 lxc-cirros -rwxr-xr-x 1 root root 13998 Nov 14 2015 lxc-debian -rwxr-xr-x 1 root root 17427 Nov 14 2015 lxc-download -rwxr-xr-x 1 root root 47200 Nov 14 2015 lxc-fedora -rwxr-xr-x 1 root root 27808 Nov 14 2015 lxc-gentoo -rwxr-xr-x 1 root root 13961 Nov 14 2015 lxc-openmandriva -rwxr-xr-x 1 root root 13705 Nov 14 2015 lxc-opensuse -rwxr-xr-x 1 root root 35445 Nov 14 2015 lxc-oracle -rwxr-xr-x 1 root root 11837 Nov 14 2015 lxc-plamo -rwxr-xr-x 1 root root 6851 Nov 14 2015 lxc-sshd -rwxr-xr-x 1 root root 24273 Nov 14 2015 lxc-ubuntu -rwxr-xr-x 1 root root 12401 Nov 14 2015 lxc-ubuntu-cloud |
2. Создание контейнера
1 |
# lxc-create -n debian8 -t debian |
, где
-n debian8 — имя контейнера
-t debian – тип контейнера – шаблон,который будет использоваться для создания контейнера
Проверка состояния контейнеров
1 |
# lxc-ls -f |
1 2 3 |
NAME STATE IPV4 IPV6 AUTOSTART --------------------------------------- debian8 STOPPED - - NO |
Добавление контейнера в автозагрузку
1 |
# nano /var/lib/lxc/debian8/config |
1 2 3 |
lxc.start.auto = 1 # включение автозапуска lxc.start.delay = 5 # задержка запуска в секундах lxc.start.order = 50 # приоритет запуска – чем выше значение, тем раньше запуск |
Запуск контейнера в фоновом режиме
1 |
# lxc-start -n debian8 -d |
1 |
# lxc-ls -f |
1 2 3 |
NAME STATE IPV4 IPV6 AUTOSTART --------------------------------------- debian8 RUNNING - - YES |
Вход в контейнер
1 |
# lxc-console -n debian8 |
1 2 3 4 |
Connected to tty 1 Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself Debian GNU/Linux 8 debian8 tty1 debian8 login: |
Выход с контейнера в ноду <Ctrl+a q>
Остановка контейнера
1 |
# lxc-stop -n debian8 |
1 |
# lxc-ls -f |
1 2 3 |
NAME STATE IPV4 IPV6 AUTOSTART --------------------------------------- debian8 STOPPED - - YES |
3.Настройка сети на ноде и в контейнере для выпуска контейнеров в Интернет
Использование сетевого стека хост-системы (type = veth)
При запуске контейнера с таким типом сети, на хост-машине создается специальный виртуальный интерфейс (в примере ниже, он называется veth-*). Этот виртуальный интерфейс фактически и использует контейнер для взаимодействия с внешней средой.
Включение маршрутизации
1 |
# nano /etc/sysctl.conf |
1 |
net.ipv4.ip_forward = 1 |
1 |
# sysctl -p |
NAT-режим
Добавление нового интерфейса
1 |
# nano /etc/network/interfaces |
1 2 3 4 5 6 7 |
auto lxc-bridge-nat iface lxc-bridge-nat inet static bridge_ports none bridge_fd 0 bridge_maxwait 0 address 192.168.10.1 netmask 255.255.255.0 |
1 |
# /etc/init.d/networking restart |
1 |
[ ok ] Restarting networking (via systemctl): networking.service. |
1 |
# ifconfig |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
eth0 Link encap:Ethernet HWaddr 00:0c:29:0d:01:00 inet addr:192.168.1.85 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:47097 errors:0 dropped:0 overruns:0 frame:0 TX packets:18078 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:62730910 (59.8 MiB) TX bytes:2379146 (2.2 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lxc-bridge-nat Link encap:Ethernet HWaddr 26:01:c2:08:c3:7b inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) |
Настройка iptables
1 |
# apt-get install iptables iptables-persistent |
1 |
# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j SNAT --to-source 192.168.1.85 |
Или, если внешний адрес нода получает динамически
1 |
# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j MASQUERADE |
1 |
# service netfilter-persistent save && service netfilter-persistent restart |
Настройка конфигурационного файла контейнера(предварительно останавливаем контейнер)
1 |
# lxc-stop -n debian8 |
1 |
# nano /var/lib/lxc/debian8/config |
1 2 3 4 5 6 7 8 |
lxc.network.type = veth # тип сети, veth если используется bridge lxc.network.link = lxc-bridge-nat # bridge, через который будет работать виртуальный интерфейс lxc.network.veth.pair = veth-01 # имя сетевого адаптера для этого контейнера на хостовой машине lxc.network.flags = up # поднимать сетевой интерфейс при запуске системы lxc.network.name = eth0 # интерфейс внутри контейнера lxc.network.ipv4 = 192.168.10.10/24 # сетевой адрес хоста lxc.network.ipv4.gateway = 192.168.10.1 # шлюз lxc.network.hwaddr = 00:16:3e:77:52:21 # мак-адрес хоста |
В результате, данный контейнер должен получить при старте ip=192.168.10.10 и через шлюз 192.168.10.1, и далее через 192.168.1.85 — выход в сеть.
1 |
# lxc-start -n debian8 -d |
1 |
# lxc-console -n debian8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
root@debian8:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:16:3e:77:52:21 inet addr:192.168.10.10 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::1065:44ff:fec2:57b2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:33 errors:0 dropped:0 overruns:0 frame:0 TX packets:46 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5102 (4.9 KiB) TX bytes:6420 (6.2 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) |
1 |
# apt-get update && apt-get install iputils-ping vim nano |
1 |
root@debian8:~# ping i.ua |
1 2 3 4 5 6 7 8 |
PING i.ua (91.198.36.14) 56(84) bytes of data. 64 bytes from www.i.ua (91.198.36.14): icmp_seq=1 ttl=56 time=7.88 ms 64 bytes from www.i.ua (91.198.36.14): icmp_seq=2 ttl=56 time=7.54 ms ^C --- i.ua ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 7.547/7.718/7.889/0.171 ms root@debian8:~# |
1 |
# nano /etc/ssh/sshd_config |
1 |
PermitRootLogin yes |
1 |
# sshd -t && service sshd restart |
Теперь подключаемся к контейнера по SSH
1 |
# ssh 192.168.10.10 |
1 2 |
root@192.168.10.10's password: root@debian8:~# |
Bridge-интерфейс
1 |
# nano /etc/network/interfaces |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#auto eth0 #iface eth0 inet manual auto br0 iface br0 inet static address 192.168.1.85 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 |
1 |
# /etc/init.d/networking restart |
1 |
[ ok ] Restarting networking (via systemctl): networking.service. |
1 |
root@debian81:~# ifconfig |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
br0 Link encap:Ethernet HWaddr 00:0c:29:0d:01:00 inet addr:192.168.1.85 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:39 errors:0 dropped:0 overruns:0 frame:0 TX packets:35 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3849 (3.7 KiB) TX bytes:3418 (3.3 KiB) eth0 Link encap:Ethernet HWaddr 00:0c:29:0d:01:00 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1262 errors:0 dropped:0 overruns:0 frame:0 TX packets:488 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:204978 (200.1 KiB) TX bytes:55567 (54.2 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) |
Настройка конфигурационного файла контейнера(предварительно останавливаем контейнер)
1 |
# lxc-stop -n debian8 |
1 |
# nano /var/lib/lxc/debian8/config |
1 2 3 4 5 6 7 8 |
lxc.network.type = veth lxc.network.link = br0 lxc.network.veth.pair = veth-01 lxc.network.flags = up lxc.network.name = eth0 lxc.network.ipv4 = 192.168.1.10/24 lxc.network.ipv4.gateway = 192.168.1.1 lxc.network.hwaddr = 00:16:3e:77:52:21 |
Запуск контейнера и проверка доступности его по сети
1 |
# lxc-start -n debian8 -d |
1 |
root@debian81:~# ping 192.168.1.10 |
1 2 3 4 5 6 |
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data. 64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.046 ms ^C --- 192.168.1.10 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.046/0.046/0.046/0.000 ms |
Вход по сети на контейнер и проверки наличия доступа в Интернет с контейнера
1 |
root@debian81:~# ssh 192.168.1.10 |
1 2 |
root@192.168.1.10's password: root@debian8:~# |
1 |
root@debian8:~# ifconfig |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
eth0 Link encap:Ethernet HWaddr 00:16:3e:77:52:21 inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::5cbc:8dff:fecf:963e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:114 errors:0 dropped:0 overruns:0 frame:0 TX packets:84 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12510 (12.2 KiB) TX bytes:9537 (9.3 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) |
1 |
root@debian8:~# ping i.ua |
1 2 3 4 5 6 7 |
PING i.ua (91.198.36.14) 56(84) bytes of data. 64 bytes from www.i.ua (91.198.36.14): icmp_seq=1 ttl=57 time=7.53 ms 64 bytes from www.i.ua (91.198.36.14): icmp_seq=2 ttl=57 time=7.48 ms ^C --- i.ua ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 7.488/7.509/7.531/0.089 ms |
4.Полезные команды LXC
Подразумевается, что имя контейнера debian8
Создать новый контейнер LXC
1 |
# lxc-create -n debian8 |
В команду lxc-create можно передать параметры, в том числе желаемую версию дистрибутива. Чтобы узнать, какие параметры принимает шаблон следует выполнить
Для установки Debian
1 |
# lxc-create --template debian --help |
Для установки Centos
1 |
# lxc-create --template centos --help |
В Debian8 по умолчанию устанавливается Centos версии 6
Для установки Centos7 используем команду
1 |
# lxc-create -n centos7 -t centos -- --release=7 |
Для установки Ubuntu
1 |
# lxc-create --template ubuntu --help |
Запуск контейнера в фоновом режиме(без подключения к консоли)
1 |
# lxc-start -n debian8 -d |
Запуск контейнера с логированием для диагностики проблемы при запуске контейнера
1 |
# lxc-start -n debian8 -l debug -o /var/log/lxc/debian8.log |
Проверка состояния контейнеров
1 |
# lxc-ls -f |
1 2 3 |
NAME STATE IPV4 IPV6 AUTOSTART -------------------------------------------------------------- debian8 RUNNING 192.168.1.10 - YES |
Просмотр подробной информации о контейнере
1 |
# lxc-info -n debian8 |
1 2 3 4 5 6 7 8 9 10 11 |
Name: debian8 State: RUNNING PID: 6037 IP: 192.168.1.10 CPU use: 0.09 seconds BlkIO use: 0 bytes Memory use: 1.28 MiB Link: vethHJB5VY TX bytes: 16.99 KiB RX bytes: 96.33 KiB Total bytes: 113.32 KiB |
Вход в контейнер/подключение к консоли контейнера
1 |
# lxc-console -n debian8 |
Остановка контейнера
1 |
# lxc-stop -n debian8 |
Удаление контейнера
1 |
# lxc-destroy -n debian8 |
Создание клона контейнера
1 |
# lxc-clone -o debian8 -n debian8-clone |
Заморозка/разморозка контейнера:
1 |
# lxc-freeze -n debian8 |
1 |
# lxc-unfreeze -n debian8 |
Создание снапшота(контейнер должен быть остановлен предварительно)
1 |
# lxc-snapshot -n debian8 |
1 2 3 4 |
lxc_container: Snapshot of directory-backed container requested. lxc_container: Making a copy-clone. If you do want snapshots, then lxc_container: please create an aufs or overlayfs clone first, snapshot that lxc_container: and keep the original container pristine. |
Список снапшотов
1 |
# lxc-snapshot -n debian8 -L |
1 |
snap0 (/var/lib/lxcsnaps/debian8) 2016:07:20 00:41:55 |
Восстановление из снепшота
1 |
# lxc-snapshot -n debian8 -r snap0 |
Выполнить указанную команду внутри контейнера
1 |
# lxc-attach -n debian8 -- uptime |
1 |
18:34:49 up 2:14, 1 user, load average: 0.00, 0.01, 0.05 |
Мониторинг состояния контейнеров
1 |
# lxc-monitor -n debian8 |
Ждать определённого состояния контейнера; завершаться, когда состояние достигнуто
1 |
# lxc-wait |
Управление cgroup-группами контейнера
1 |
# lxc-cgroup |
5.Ограничение ресурсов контейнера с помощью cgroup
lxc-cgroup получает или устанавливает значения cgroup ассоциированных с именем контейнера
RAM/SWAP
Ограничения применяемые на лету сбрасываются после перезагрузки контейнера
Просмотр доступной памяти контейнеру
1 |
# lxc-cgroup -n debian8 memory.limit_in_bytes |
1 |
18446744073709551615 |
Ограничим размер оперативной пямяти для контейнера в размере 512MB
1 |
# lxc-cgroup -n debian8 memory.limit_in_bytes 512M |
Проверяем наши изменения
1 |
# lxc-cgroup -n debian8 memory.limit_in_bytes |
1 |
536870912 |
Для того, чтобы изменения сохранялись при перезагрузке контейнера необходимо добавить их в файл с настройками контейнера
1 |
# nano /var/lib/lxc/debian8/config |
1 |
lxc.cgroup.memory.limit_in_bytes = 512M |
Изменения в этом файле вступят в силу после перезагрузки контейнера
Проверка размера доступной для контейнера оперативной памяти
1 |
# lxc-cgroup -n debian8 memory.limit_in_bytes |
1 |
536870912 |
Либо можно воспользоваться запуском контейнера с логированием и фильтрацией лога запуска контейнера
1 |
# lxc-start -n debian8 -l debug -o /var/log/lxc/debian8.log |
1 |
# grep -i memory o /var/log/lxc/debian8.log |
Либо с помощью cgroup
1 |
# cat /sys/fs/cgroup/memory/lxc/debian8/memory.limit_in_bytes |
1 |
536870912 |
Ограниечение на swap-раздел
Например, установлен лимит на использование оперативной памяти 512MB
1 |
# nano /var/lib/lxc/debian8/config |
1 |
lxc.cgroup.memory.limit_in_bytes = 512M |
Для установки лимита на использование суммы оперативной памяти и swap используется параметр memory.memsw.limit_in_bytes, который ОБЯЗАТЕЛЬНО должен быть указан после параметра memory.limit_in_bytes.
Например, ограничим размер swap-раздела 1024M
1 |
# nano /var/lib/lxc/debian8/config |
1 2 |
lxc.cgroup.memory.limit_in_bytes = 512M lxc.cgroup.memory.memsw.limit_in_bytes = 1536M |
CPU
1 |
lxc.cgroup.cpuset.cpus |
— выделение конкретного ядра/ядер
1 |
lxc.cgroup.cpu.shares |
— приоритет (по умолчанию равно 1024)
В конфигурационном файле контейнера (выделяем под контейнер первых два ядра процессора):
Чтобы изменения сохранились после перезагрузки
1 |
# nano /var/lib/lxc/debian8/config |
1 2 |
lxc.cgroup.cpuset.cpus = 0,1 lxc.cgroup.cpu.shares = 512 |
Чтобы изменения применились до перезагрузки
1 |
# lxc-cgroup -n debian8 cpuset.cpus 0,1 |
1 |
# lxc-cgroup -n debian8 cpu.shares 512 |
Проверка значений
1 |
# lxc-cgroup -n debian8 cpu.shares |
1 |
512 |
1 |
# lxc-cgroup -n debian8 cpuset.cpus |
1 |
0-1 |
Источник:
http://eax.me/lxc/
http://xgu.ru/wiki/LXC
http://serverfault.com/questions/444232/limit-memory-and-cpu-with-lxc-execute/471276#471276
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/index.html