xg-scale

annotate xen/block-attach.tex @ 0:4730a0d07d88

Исходники курса после первого прочтения.
Правки (которых должно быть много),
ещё пока не вносились.
author Igor Chubin <igor@chub.in>
date Tue Jul 01 16:16:44 2008 +0300 (2008-07-01)
parents
children
rev   line source
igor@0 1 \section{Подключениё устройств}
igor@0 2
igor@0 3 \textbf{Как выполнять горячее подключение блочных устройств в Xen.}<br/>
igor@0 4 Перевод и редактирование: Игорь Чубин<br/>
igor@0 5 Короткая ссылка: http://xgu.ru/wiki/xen/block-attach<br/>
igor@0 6 Оригинал: \url{http://lists.xensource.com/archives/html/xen-users/2007-03/msg01024.html}
igor@0 7
igor@0 8 Здесь рассматривается как выполнять горячее подключение устройств Xen,
igor@0 9 и как это может пригодиться при организации резервного копирования
igor@0 10 данных из доменов domU.
igor@0 11
igor@0 12 \subsection{Горячее подключение устройств}
igor@0 13 У команды \textit{xm} есть подкоманды \textit{block-attach} и \textit{block-detach}.
igor@0 14 В man-странице по \textit{xm} рассказывается детальнее об этих подкомандах (надо заметить, что описание подкоманды \textit{block-detach} там не совсем верное).
igor@0 15
igor@0 16 Эти команды, в частности, позволяют подключать/отключать (виртуальные) блочные устройства в domU. Делается это из домена dom0.
igor@0 17
igor@0 18 Например:
igor@0 19 \begin{verbatim}
igor@0 20
igor@0 21 \end{verbatim}
igor@0 22 \begin{verbatim}
igor@0 23
igor@0 24 \end{verbatim}
igor@0 25
igor@0 26 Команда \dq{}xm block-list\dq{} показывает список устройств, подключенных к домену.
igor@0 27 Мы делаем предположение, что последний пункт в списке это последнее
igor@0 28 добавленное устройство.
igor@0 29 Это работает, но такое поведение нигде не задокументировано,
igor@0 30 поэтому оно может измениться.
igor@0 31 Нам нужно отслеживать block id устройств, поскольку команда \textit{block-detach} требует знания именно id, а не имени устройства или файла.
igor@0 32
igor@0 33 \subsection{Резервное копирование данных домена}
igor@0 34 После этого создаётся snapshot и подсоединяется к Amanda-серверу.
igor@0 35 Backup-сервер с помощью fsck выполняет проверку на вновь подключенном устройстве, монтирует его, выполняет резервное копирование, а потом размонтирует его.
igor@0 36
igor@0 37 После этого в домене 0 выполняется команда: \begin{verbatim}
igor@0 38 block-attach domain-id be-dev fe-dev mode [bedomain-id]
igor@0 39 \end{verbatim}
igor@0 40
igor@0 41 Здесь описано как выполнять подключение устройств из командной строки.
igor@0 42 Конечно, это можно делать и скриптами.
igor@0 43 \begin{verbatim}
igor@0 44
igor@0 45 \end{verbatim}
igor@0 46 Аналогичным образом можно выполнять горячее подключение сетевых устройств,
igor@0 47 но это отдельная история.
igor@0 48
igor@0 49 \subsection{Подкоманды xm для работы с блочными устройствами}
igor@0 50 \subsubsection{block-attach}
igor@0 51 \begin{verbatim}
igor@0 52 block-attach domain-id be-dev fe-dev mode [bedomain-id]
igor@0 53 \end{verbatim}
igor@0 54
igor@0 55 Создать новое виртуальное блочное устройство.
igor@0 56 В результате выполняется hotplug-событие для гостевого домена.
igor@0 57
igor@0 58 \paragraph{Опции}
igor@0 59 \begin{itemize}
igor@0 60 \item \textit{domain-id} -- Номер гостевого домена, к которому будет подключаться устройство.
igor@0 61 \item \textit{be-dev} -- Устройство в backend-домене (обычно домен 0), которое должно экспортироваться. Его можно указать как физический раздел (phy:sda7) или как файл, который должен быть смонтирован через loopback-устройство (file://path/to/loop.iso).
igor@0 62 \item \textit{fe-dev} -- Как устройство должно быть представлено в гостевом домене. Параметр можно указывать или в виде символьного имени (для распространённых устройств), например как /dev/hdc, или с помощью device id, например 0x1400 (код device id для /dev/hdc в шестнадцатеричной системе).
igor@0 63 \item \textit{mode} -- Режим доступа из гостевого домена. Поддерживаются режимы rw (read/write) и ro (read-only).
igor@0 64 \item \textit{bedomain-id} -- backend-домен, обеспечивающий устройство. По умолчанию домен 0.
igor@0 65 \end{itemize}
igor@0 66
igor@0 67 \paragraph{Примеры}
igor@0 68 Монтирование ISO-диска:
igor@0 69 \begin{verbatim}
igor@0 70 xm block-attach guestdomain file://path/to/dsl-2.0RC2.iso /dev/hdc ro
igor@0 71 \end{verbatim}
igor@0 72
igor@0 73 Команда подключает ISO-файл dsl как /dev/hdc в гостевом домене в режиме read/only. Возможно, гостевая система и не увидит этот файл как сетевой,
igor@0 74 но ручное монтирование точно сработает.
igor@0 75
igor@0 76 \subsubsection{block-detach}
igor@0 77 \begin{verbatim}
igor@0 78 block-detach domain-id devid
igor@0 79 \end{verbatim}
igor@0 80
igor@0 81 Удалить блочное устройство из домена.
igor@0 82 В качестве \textit{devid} должно быть указано устроство домена 0.
igor@0 83 Номер определяется с помощью команды \textit{xm block-list}.
igor@0 84
igor@0 85 Сейчас эта команда сломана.
igor@0 86 Даже если устройство удалено из домена domU,
igor@0 87 оно занято в домене 0.
igor@0 88
igor@0 89 \subsubsection{block-list}
igor@0 90 \begin{verbatim}
igor@0 91 block-list [-l|--long] domain-id
igor@0 92 \end{verbatim}
igor@0 93
igor@0 94 Показать список виртуальных блочных устройств для домена.
igor@0 95 Вывод представлен в виде отформатированного списка или как S-выражение (S-Expression), в том случае, если задана опция --long.
igor@0 96
igor@0 97 \subsection{Дополнительная информация}
igor@0 98 \begin{itemize}
igor@0 99 \item xm(1) -- man-страница по \textbf{xm}
igor@0 100 \item Amanda -- система для резервного копирования по сети
igor@0 101 \end{itemize}
igor@0 102