xg-scale

diff xen/block-attach.tex @ 1:6f6e0f706b86

Added tag v0.1 for changeset 4730a0d07d88
author Igor Chubin <igor@chub.in>
date Tue Jul 01 16:28:00 2008 +0300 (2008-07-01)
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/xen/block-attach.tex	Tue Jul 01 16:28:00 2008 +0300
     1.3 @@ -0,0 +1,102 @@
     1.4 +\section{Подключениё устройств}
     1.5 +
     1.6 +\textbf{Как выполнять горячее подключение блочных устройств в Xen.}<br/>
     1.7 +Перевод и редактирование: Игорь Чубин<br/>
     1.8 +Короткая ссылка: http://xgu.ru/wiki/xen/block-attach<br/>
     1.9 +Оригинал: \url{http://lists.xensource.com/archives/html/xen-users/2007-03/msg01024.html}
    1.10 +
    1.11 +Здесь рассматривается как выполнять горячее подключение устройств Xen,
    1.12 +и как это может пригодиться при организации резервного копирования
    1.13 +данных из доменов domU.
    1.14 +
    1.15 +\subsection{Горячее подключение устройств}
    1.16 +У команды \textit{xm} есть подкоманды \textit{block-attach} и \textit{block-detach}.
    1.17 +В man-странице по \textit{xm} рассказывается детальнее об этих подкомандах (надо заметить, что описание подкоманды \textit{block-detach} там не совсем верное).
    1.18 +
    1.19 +Эти команды, в частности, позволяют подключать/отключать (виртуальные) блочные устройства в domU. Делается это из домена dom0.
    1.20 +
    1.21 +Например:
    1.22 +\begin{verbatim}
    1.23 +                                                                                                                             
    1.24 +\end{verbatim}
    1.25 + \begin{verbatim}
    1.26 +                                                                                                                             
    1.27 +\end{verbatim}
    1.28 +
    1.29 +Команда \dq{}xm block-list\dq{} показывает список устройств, подключенных к домену.
    1.30 +Мы делаем предположение, что последний пункт в списке это последнее
    1.31 +добавленное устройство.
    1.32 +Это работает, но такое поведение нигде не задокументировано, 
    1.33 +поэтому оно может измениться. 
    1.34 +Нам нужно отслеживать block id устройств, поскольку команда \textit{block-detach} требует знания именно id, а не имени устройства или файла.
    1.35 +
    1.36 +\subsection{Резервное копирование данных домена}
    1.37 +После этого создаётся snapshot и подсоединяется к Amanda-серверу.
    1.38 +Backup-сервер с помощью fsck выполняет проверку на вновь подключенном устройстве, монтирует его, выполняет резервное копирование, а потом размонтирует его.
    1.39 +
    1.40 +После этого в домене 0 выполняется команда:                                                                                                                              \begin{verbatim}
    1.41 +  block-attach domain-id be-dev fe-dev mode [bedomain-id]
    1.42 +\end{verbatim}
    1.43 +
    1.44 +Здесь описано как выполнять подключение устройств из командной строки.
    1.45 +Конечно, это можно делать и скриптами. 
    1.46 +\begin{verbatim}
    1.47 +                                                                                                                             
    1.48 +\end{verbatim}
    1.49 +Аналогичным образом можно выполнять горячее подключение сетевых устройств,
    1.50 +но это отдельная история.
    1.51 +
    1.52 +\subsection{Подкоманды xm для работы с блочными устройствами}
    1.53 +\subsubsection{block-attach}
    1.54 +\begin{verbatim}
    1.55 +  block-attach domain-id be-dev fe-dev mode [bedomain-id]
    1.56 +\end{verbatim}
    1.57 +
    1.58 +Создать новое виртуальное блочное устройство.
    1.59 +В результате выполняется hotplug-событие для гостевого домена.
    1.60 +
    1.61 +\paragraph{Опции}
    1.62 +\begin{itemize}
    1.63 +\item  \textit{domain-id} -- Номер гостевого домена, к которому будет подключаться устройство. 
    1.64 +\item  \textit{be-dev} -- Устройство в backend-домене (обычно домен 0), которое должно экспортироваться. Его можно указать как физический раздел (phy:sda7) или как файл, который должен быть смонтирован через loopback-устройство (file://path/to/loop.iso).
    1.65 +\item  \textit{fe-dev} -- Как устройство должно быть представлено в гостевом домене. Параметр можно указывать или в виде символьного имени (для распространённых устройств), например как /dev/hdc, или с помощью device id, например 0x1400 (код device id для /dev/hdc в шестнадцатеричной системе). 
    1.66 +\item  \textit{mode} -- Режим доступа из гостевого домена. Поддерживаются режимы rw (read/write) и ro (read-only).
    1.67 +\item  \textit{bedomain-id} -- backend-домен, обеспечивающий устройство. По умолчанию домен 0.
    1.68 +\end{itemize}
    1.69 +
    1.70 +\paragraph{Примеры}
    1.71 +Монтирование ISO-диска:
    1.72 +\begin{verbatim}
    1.73 +xm block-attach guestdomain file://path/to/dsl-2.0RC2.iso /dev/hdc ro
    1.74 +\end{verbatim}
    1.75 +
    1.76 +Команда подключает ISO-файл dsl как /dev/hdc в гостевом домене в режиме read/only. Возможно, гостевая система и не увидит этот файл как сетевой, 
    1.77 +но ручное монтирование точно сработает.
    1.78 +
    1.79 +\subsubsection{block-detach}
    1.80 +\begin{verbatim}
    1.81 + block-detach domain-id devid
    1.82 +\end{verbatim}
    1.83 +
    1.84 +Удалить блочное устройство из домена.
    1.85 +В качестве \textit{devid} должно быть указано устроство домена 0.
    1.86 +Номер определяется с помощью команды \textit{xm block-list}.
    1.87 +
    1.88 +Сейчас эта команда сломана.
    1.89 +Даже если устройство удалено из домена domU,
    1.90 +оно занято в домене 0.
    1.91 +
    1.92 +\subsubsection{block-list}
    1.93 +\begin{verbatim}
    1.94 + block-list [-l|--long] domain-id
    1.95 +\end{verbatim}
    1.96 +
    1.97 +Показать список виртуальных блочных устройств для домена.
    1.98 +Вывод представлен в виде отформатированного списка или как S-выражение (S-Expression), в том случае, если задана опция --long.
    1.99 +
   1.100 +\subsection{Дополнительная информация}
   1.101 +\begin{itemize}
   1.102 +\item  xm(1) -- man-страница по \textbf{xm}
   1.103 +\item  Amanda -- система для резервного копирования по сети
   1.104 +\end{itemize}
   1.105 +