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 |