rev |
line source |
igor@0
|
1 \section{ATA over Ethernet}
|
igor@0
|
2
|
igor@0
|
3 Описываемая технология построения хранилищ даёт возможность строить дисковые массивы
|
igor@0
|
4 для архивов, резервных копий или традиционного использования
|
igor@0
|
5 на базе обычных дисков ATA, которые дешевле даже чем лента.
|
igor@0
|
6 Эта технология может оказаться особенно интересной для тех,
|
igor@0
|
7 кто использует виртуализированные системы на базе Xen.
|
igor@0
|
8
|
igor@0
|
9 Технология является альтернативой для iSCSI, но с более узким
|
igor@0
|
10 спектром задач, где она может использоваться. Подробнее об этом ниже,
|
igor@0
|
11 в разделе \textit{\dq{}Преимущества и недостатки AoE\dq{}}.
|
igor@0
|
12
|
igor@0
|
13 \subsection{Введение}
|
igor@0
|
14 Данные некоторых видов огромны просто в силу своей природы.
|
igor@0
|
15 Видео, например, как правило занимает большой объём диска.
|
igor@0
|
16 В связи с широким распространением видеонаблюдения
|
igor@0
|
17 потребность в хранении видео-данных становится ещё более актуальной.
|
igor@0
|
18
|
igor@0
|
19 Резервное копирование и избыточность данных
|
igor@0
|
20 имеет существенное значение для любого дела,
|
igor@0
|
21 в котором используются компьютеры.
|
igor@0
|
22 Похоже, не важно, какой объём хранилища -- всегда хочется иметь больше.
|
igor@0
|
23 Даже почта может вырасти за пределы контейнера, в котором она лежит.
|
igor@0
|
24 Это хорошо известно провайдерам Интернет-услуг.
|
igor@0
|
25
|
igor@0
|
26 Хранилище неограниченного размера вполне имеет право на существование,
|
igor@0
|
27 если сделать так, чтобы диски можно было вынести за предел корпуса
|
igor@0
|
28 и отвязать хранилище от компьютера, которые его использует.
|
igor@0
|
29 Принцип развязки связанных компонент с целью достижения большей гибкости
|
igor@0
|
30 хорошо показал себя во множестве различных областей,
|
igor@0
|
31 не только при построении хранилищ.
|
igor@0
|
32 Модульный код обладает гибкостью, которая позволяет
|
igor@0
|
33 применять его в непредвиденных ситуациях или
|
igor@0
|
34 стерео-система, сделанная из компонентов,
|
igor@0
|
35 может использоваться в различных интересных конфигурациях,
|
igor@0
|
36 а не только как аудио-комбайн.
|
igor@0
|
37
|
igor@0
|
38 Наиболее известный пример хранилищ, работающих из коробки это, наверное, SAN (storage area network).
|
igor@0
|
39 Когда SAN\rq{}ы только появились вокруг них был большой шум и переполох.
|
igor@0
|
40 Сложно было выяснить, что же это в действительности такое.
|
igor@0
|
41 А когда в итоге это всё-таки получилось, выяснилось что это нечто
|
igor@0
|
42 сложное, проприетарное и дорогое.
|
igor@0
|
43
|
igor@0
|
44 Однако, поддерживая SAN\rq{}ы Linux-сообщество сделало несколько полезных изменений в ядре.
|
igor@0
|
45 Сегодня в ядрах Linux есть возможности, которых ещё несколько лет назад очень не хватало.
|
igor@0
|
46 Они могут использоваться как гигантские блочные устройства, выходящие далеко
|
igor@0
|
47 за старые пределы в два терабайта (именно терабайта! подробности, например, в \url{http://lkml.org/lkml/2002/5/9/217} и \url{http://kerneltrap.org/node/186}). Они поддерживают намного больше
|
igor@0
|
48 одновременно подключённых дисков. Также появились богатые возможности управления томами.
|
igor@0
|
49 В дополнение ко всему прочему, файловые системы могут теперь расширяться до огромных размеров,
|
igor@0
|
50 даже когда они смонтированы и используются.
|
igor@0
|
51
|
igor@0
|
52 Здесь рассматриваются новые пути использования эти возможности ядра:
|
igor@0
|
53 диски выносятся из компьютера старые пределы ёмкости преодолеваются.
|
igor@0
|
54 Можно воспринимать ATA over Ethernet как способ заменить IDE-кабель
|
igor@0
|
55 сетью Ethernet. Когда хранилище и компьютер развязаны и между ними стоит такая гибкая вещь
|
igor@0
|
56 как Ethernet, возможности ограничены только воображением и желанием изучать новые вещи.
|
igor@0
|
57
|
igor@0
|
58 \subsection{Что такое AoE}
|
igor@0
|
59 ATA over Ethernet (AoE) — это сетевой протокол, зарегистрированный IEEE как Ethernet-протокол
|
igor@0
|
60 номер 0x88a2. AoE это низкоуровневый протокол, намного более простой чем TCP/IP или даже просто IP.
|
igor@0
|
61 TCP/IP и IP нужны обязательно, если требуется организовать (надёжную) передачу данных через Интернет,
|
igor@0
|
62 но на компьютер в этом случае ложится намного большая нагрузка, для того чтобы
|
igor@0
|
63 обеспечить ту сложность, которая присуща этим протоколам.
|
igor@0
|
64
|
igor@0
|
65 Особенно хорошо это известно пользователям iSCSI.
|
igor@0
|
66 iSCSI позволяет перенаправить ввод/вывод поверх TCP/IP,
|
igor@0
|
67 что в свою очередь даёт возможность заменить дорогое оборудование Fibre Channel на значительно
|
igor@0
|
68 более дешёвое Ethernet и IP.
|
igor@0
|
69 Зачастую iSCSI используется совместно с устройствами для разгрузки TCP (TCP offload engines, TOE).
|
igor@0
|
70 Эти устройства довольно дорогие, но они снимают часть нагрузки TCP/IP
|
igor@0
|
71 с центрального процессора машин, использующих iSCSI.
|
igor@0
|
72
|
igor@0
|
73 Интересно, что в большинстве своём iSCSI не используется поверх собственно сети Интернет.
|
igor@0
|
74 Чаще всего пакеты просто передаются на машину, стоящую в соседней серверной стойке,
|
igor@0
|
75 и в этом случае вся мощь TCP/IP оказывается просто избыточной.
|
igor@0
|
76
|
igor@0
|
77 Резонный вопрос, почему бы вместо того что разгружать TCP/IP вообще от него не избавиться?
|
igor@0
|
78 Протокол AoE именно это и делает.
|
igor@0
|
79 И вместо того чтобы полагаться на TCP/IP, он полагается на возможности современных коммутаторов,
|
igor@0
|
80 у которых не бывает коллизий, есть возможность управления потоком и
|
igor@0
|
81 постоянно растёт производительность.
|
igor@0
|
82 В локальной сети сохраняется последовательность пакетов
|
igor@0
|
83 и для каждого пакеты сетевым оборудованием вычисляется контрольная сумма.
|
igor@0
|
84
|
igor@0
|
85 В каждом AoE пакете находится команда для ATA-диска или ответ от ATA-диска.
|
igor@0
|
86 Драйвер AoE в ядре Linux выполняется AoE и делает диск доступным как обычное
|
igor@0
|
87 блочное устройство, такое, например, как \texttt{/dev/etherd/e0.0} -- точно также
|
igor@0
|
88 как IDE-драйвер делает диск, подключённый к концу IDE-кабеля, доступным как \texttt{/dev/hda}.
|
igor@0
|
89 Драйвер, если нужно, ретранслирует пакеты, так что AoE-устройство выглядит для остального ядра как обычный диск.
|
igor@0
|
90
|
igor@0
|
91 В дополнение к ATA командам, у AoE есть простая возможность идентификации
|
igor@0
|
92 доступных устройств с помощью конфигурационных опросных пакетов (query config packets).
|
igor@0
|
93 Это всё: ATA команды и конфигурационных опросные пакеты.
|
igor@0
|
94
|
igor@0
|
95 Возникает вопрос:
|
igor@0
|
96 если все диски находятся в сети, тогда как я могу ограничить доступ к дискам?
|
igor@0
|
97 Как можно быть уверенным что, даже если машину А взломали, что диски машины B в безопасности?
|
igor@0
|
98
|
igor@0
|
99 Ответ в том, что AoE немаршрутизируемый протокол. Можно легко определить какой компьютер
|
igor@0
|
100 будет видеть какие диски путём конфигурирования Ethernet-сети.
|
igor@0
|
101 Поскольку AoE-устройствам не нужны IP-адреса, создать изолированные
|
igor@0
|
102 Ethernet-сети несложно.
|
igor@0
|
103 Большинство современных коммутаторов имеют возможность организации
|
igor@0
|
104 VLAN\rq{}ов, что позволяет легко разделить коммутатор на несколько широковещательных доменов.
|
igor@0
|
105
|
igor@0
|
106 Протокол AoE настолько легковесный, что его может использовать даже самое недорогое железо
|
igor@0
|
107 (существует как минимум один производитель оборудования, поддерживаеющего ATA over Ethernet — Coraid).
|
igor@0
|
108 Описание спецификаций AoE помещается на 8 страниц. Простота протокола выглядит контрастно
|
igor@0
|
109 по отношению к iSCSI, который описывается на сотнях страниц,
|
igor@0
|
110 включая спецификации по шифрованию, маршрутизации, контролю доступа
|
igor@0
|
111 и множеству других вопросов.
|
igor@0
|
112
|
igor@0
|
113 Простые примитивы могут быть очень мощными.
|
igor@0
|
114
|
igor@0
|
115 \subsection{Стэн-архиватор}
|
igor@0
|
116 Эта история основана на реальных событиях, случившихся с гражданином
|
igor@0
|
117 одного другого государства.
|
igor@0
|
118
|
igor@0
|
119 Стэн — вымышленный админ, работающий на государственной службе.
|
igor@0
|
120 В соответствии с новым государственным законом той страны все официальные
|
igor@0
|
121 документы должны архивироваться. Любой гражданин государства
|
igor@0
|
122 может потребовать показать любой документ в любое время.
|
igor@0
|
123 Из-за этого Стэну понадобилось огромное хранилище, которое может расти
|
igor@0
|
124 без всяких ограничений. Производительность хранилища может не быть
|
igor@0
|
125 больше производительности локального диска. Любые данные из хранилища
|
igor@0
|
126 должны доставаться легко и мгновенно.
|
igor@0
|
127
|
igor@0
|
128 Стэн уверенно чувствует себя в системном администрировании Linux и Ethernet сетях,
|
igor@0
|
129 и из-за этого он решает попробовать для своей задачи ATA over Ethernet.
|
igor@0
|
130 Он покупает кое-какое оборудование, потратив на это меньше \$6.5K:
|
igor@0
|
131 \begin{itemize}
|
igor@0
|
132 \item Одна двухпортовая гигабитная Ethernet-карта, вместо старой 100-мегабитной карты.
|
igor@0
|
133 \item Один 26-портовый коммутатор с двумя гигабитными портами.
|
igor@0
|
134 \item Одну полку Coraid EtherDrive и десять блэйдов EtherDrive.
|
igor@0
|
135 \item Десять 400GB ATA жестких дисков.
|
igor@0
|
136 \end{itemize}
|
igor@0
|
137
|
igor@0
|
138 Оборудование может быть объединеное в программный RAID-10 — чередование поверх зеркалированных пар.
|
igor@0
|
139 Хотя этак конфигурация не даёт столько ёмкости как конфигурация RAID 5,
|
igor@0
|
140 она максимизирует отказоустойчивость, надёжность, снижает нагрузку
|
igor@0
|
141 на процессор и время реинициализации диска при замене.
|
igor@0
|
142
|
igor@0
|
143 Имеет смысл поверх AoE-дисков использовать
|
igor@0
|
144 LVM и файловые системы с возможностью online-расширения, такие например,
|
igor@0
|
145 как ext3, XFS или JFS.
|
igor@0
|
146 Это даст возможность в дальнейшем, при необходимости купить новую заполненную
|
igor@0
|
147 полку, создать ещё один RAID 10, превратить его в физический том,
|
igor@0
|
148 и использовать этот том для расширения
|
igor@0
|
149 объёма логических томов с файловыми системами.
|
igor@0
|
150
|
igor@0
|
151 Для старых систем нужно скомпилировать драйвер
|
igor@0
|
152 AoE с AOE\_PARTITIONS=1 (в частности, sarge не поддерживал большие минорные номера),
|
igor@0
|
153 поэтому он выключает поддержку разделов, для того чтобы использовать побольше дисков.
|
igor@0
|
154
|
igor@0
|
155 \begin{verbatim}
|
igor@0
|
156 %# # Настройка хоста для работы с AOE
|
igor@0
|
157
|
igor@0
|
158 %# # Сборка и инсталляция драйвера aoe
|
igor@0
|
159 %# tar xvfz aoe-2.6-5.tar.gz
|
igor@0
|
160 %# cd aoe-2.6-5
|
igor@0
|
161 %# make AOE_PARTITIONS=1 install
|
igor@0
|
162
|
igor@0
|
163 %# # Настройка сети
|
igor@0
|
164 %# # Для AoE IP-адрес не нужен
|
igor@0
|
165 %# ifconfig eth1 up
|
igor@0
|
166
|
igor@0
|
167 %# # Чтобы быть уверенным что интерфейс успел подняться, нужно подождать какое-то время
|
igor@0
|
168 %# # И после этого загрузить драйвер aoe
|
igor@0
|
169 %# sleep 5
|
igor@0
|
170 %# modprobe aoe
|
igor@0
|
171
|
igor@0
|
172 %# # Теперь можно посмотреть какие AoE-устройства есть в сети
|
igor@0
|
173 %# aoe-stat
|
igor@0
|
174 \end{verbatim}
|
igor@0
|
175
|
igor@0
|
176 \subsection{Минорные номера устройств}
|
igor@0
|
177 Программы, которые хотят использовать устройство, как правило, обращаются к нему
|
igor@0
|
178 через специальный файл, соответствующий ему. Типичный пример -- файл \texttt{/dev/hda}.
|
igor@0
|
179 Команда \texttt{ls -l} покажет для этого устройства, \texttt{/dev/hda}, номера 3 и 0.
|
igor@0
|
180 Мажорный номер 3 и минорный номер 0. А у устройства \texttt{/dev/hda1} минорный номер 1,
|
igor@0
|
181 в то время как мажорный номер тоже 3.
|
igor@0
|
182
|
igor@0
|
183 До ядра 2.6 минорный номер был 8битный, ограничивая возможное количество номеров от 0 до 255.
|
igor@0
|
184 Ни у кого и не было столько устройств, поэтому ограничение не имело существенного значения.
|
igor@0
|
185 Теперь, когда диски могут быть отвязаны от серверов, ограничение стало важным --
|
igor@0
|
186 в настоящее время ядро 2.6 использует до 20 бит для минорного номера устройства.
|
igor@0
|
187
|
igor@0
|
188 Иметь 1048576 разных значений для минорного номера это большая помощь для систем, в которых
|
igor@0
|
189 много устройств, но не всякое программное обеспечение может с этим разобраться.
|
igor@0
|
190 Если glibc или другая программа всё ещё думает, что минорные номера 8-битные,
|
igor@0
|
191 будет проблематично заставить её использовать номера превышающие 255.
|
igor@0
|
192
|
igor@0
|
193 Для облегчения перехода, драйвер AoE может быть скомипилирован
|
igor@0
|
194 без поддержки разделов.
|
igor@0
|
195 Это позволит вместо 16 номеров на диск использовать только один.
|
igor@0
|
196 Так что, даже на системах, которые до сих пор не поддерживают большие
|
igor@0
|
197 минорные номера как ядро 2.6, можно использовать до 256 AoE дисков.
|
igor@0
|
198
|
igor@0
|
199 Команды для создания файловой системы и логических томов показаны на листинге 2.
|
igor@0
|
200 Стэн решил назвать группу ben и логический том franklin.
|
igor@0
|
201 После этого нужно сделать небольшие изменения в конфигурации LVM2.
|
igor@0
|
202 Во-первых, нужно добавить строку с типом = [\dq{}aoe\dq{}, 16],
|
igor@0
|
203 так чтобы LVM распознал AoE-диски. Во-вторых, нужно указать md\_component\_detection = 1,
|
igor@0
|
204 чтобы диски внутри RAID 10 игнорировались, как только весь RAID 10
|
igor@0
|
205 стал физическим томом.
|
igor@0
|
206
|
igor@0
|
207 \begin{verbatim}
|
igor@0
|
208 %# # ускорить инициализацию массива
|
igor@0
|
209 %# for f in `find /proc | grep speed`; do echo 100000 > $f done
|
igor@0
|
210
|
igor@0
|
211 %# создать массив (mdadm will manage hot spares)
|
igor@0
|
212 %# mdadm -C /dev/md1 -l 1 -n 2 /dev/etherd/e0.0 /dev/etherd/e0.1
|
igor@0
|
213 %# mdadm -C /dev/md2 -l 1 -n 2 /dev/etherd/e0.2 /dev/etherd/e0.3
|
igor@0
|
214 %# mdadm -C /dev/md3 -l 1 -n 2 /dev/etherd/e0.4 /dev/etherd/e0.5
|
igor@0
|
215 %# mdadm -C /dev/md4 -l 1 -n 2 -x 2 \
|
igor@0
|
216 /dev/etherd/e0.6 /dev/etherd/e0.7 \
|
igor@0
|
217 /dev/etherd/e0.8 /dev/etherd/e0.9
|
igor@0
|
218 %# sleep 1
|
igor@0
|
219
|
igor@0
|
220 %# распределение по зеркалам
|
igor@0
|
221 %# mdadm -C /dev/md0 -l 0 -n 4 \
|
igor@0
|
222 /dev/md1 /dev/md2 /dev/md3 /dev/md4
|
igor@0
|
223
|
igor@0
|
224 %# # превращаем RAID10 в физический том, и добавляем его в группу
|
igor@0
|
225 %# pvcreate /dev/md0
|
igor@0
|
226 %# vgcreate TURBO /dev/md0
|
igor@0
|
227
|
igor@0
|
228 %# # смотрим количество экстентов
|
igor@0
|
229 %# vgdisplay TURBO | grep -i 'free.*PE'
|
igor@0
|
230
|
igor@0
|
231 %## создаём том, занимающий всё свободное пространство
|
igor@0
|
232 %# lvcreate --extents 88349 --name vol1 TURBO
|
igor@0
|
233 %# modprobe jfs
|
igor@0
|
234 %# mkfs -t jfs /dev/TURBO/vol1
|
igor@0
|
235 %# mkdir /vol1
|
igor@0
|
236 %# mount /dev/TURBO/vol1 /vol1
|
igor@0
|
237 \end{verbatim}
|
igor@0
|
238
|
igor@0
|
239 На системе Debian Sarge с двумя процессорами
|
igor@0
|
240 Athlon MP, 1 GB памяти, сетевой картой Intel PRO/1000MT и 40GB дисками
|
igor@0
|
241 и коммутатором Netgear FS526T
|
igor@0
|
242 с RAID 10 работающим поверх 8 блэйдов EtherDrive в полке Coraid
|
igor@0
|
243 была зафиксирована произодвительность 23.58MB/s на чтение
|
igor@0
|
244 и 17.45MB/s на запись.
|
igor@0
|
245 Измерения делались
|
igor@0
|
246 путём копирования 1GB файла в /dev/null после сброса кэша.
|
igor@0
|
247 Во время копирования включена также команда sync.
|
igor@0
|
248
|
igor@0
|
249 RAID 10 в данном случае состоит из четырёх stripe\rq{}ов,
|
igor@0
|
250 каждый из которых это пара зеркалированных дисков.
|
igor@0
|
251 Вообще, можно вычислить производительность
|
igor@0
|
252 набора блэйдов EtherDrive исходя только из количества stripe\rq{}ов в нём.
|
igor@0
|
253 Для RAID 10 stripe\rq{}ов будет в два раза меньше чем дисков,
|
igor@0
|
254 поскольку каждый диск зеркалируется на другой диск.
|
igor@0
|
255 Для RAID 5 один диск выделяется под чётность, оставляя остальные диски для stripe\rq{}ов.
|
igor@0
|
256
|
igor@0
|
257 Ожидаемая пропускная способность чтения равна количеству stripe\rq{}ов умножить на 6MB/s.
|
igor@0
|
258 Это означает, что если Стэн изначальное купил бы две полки
|
igor@0
|
259 и собрал бы из них 18-блэйдный RAID 10 вместо своего 8-блэйдного, он мог ожидать
|
igor@0
|
260 прироста производительности более чем в два раза.
|
igor@0
|
261 Стэну не нужна такая большая производительность и он хочет начать с маленькой файловой системы,
|
igor@0
|
262 размером 1.6TB.
|
igor@0
|
263
|
igor@0
|
264 Ниже показано как можно расширить файловую систему.
|
igor@0
|
265
|
igor@0
|
266 На листинге не показан файл \#mdadm-aoe.conf\# и стартовые/стоповые скрипты.
|
igor@0
|
267 Конфигурационный файл mdadm указывает процессу mdadm, работающему в режиме монитора,
|
igor@0
|
268 как выполнять горячую замену, чтобы можно было заменить сбойный диск в зеркале.
|
igor@0
|
269 Подробности о группах резервирования (spare groups) можно прочитать на man-странице
|
igor@0
|
270 по mdadm.
|
igor@0
|
271
|
igor@0
|
272 Увеличить файловую систему без размонтирования, установить массив RAID 10, добавить его в группу томов и затем увеличить файловую систему:
|
igor@0
|
273
|
igor@0
|
274 \begin{verbatim}
|
igor@0
|
275 %# # когда для второй полки сделан RAID10, добавляем его в группу томов
|
igor@0
|
276 %# vgextend TURBO /dev/md5
|
igor@0
|
277 %# vgdisplay TURBO | grep -i 'free.*PE'
|
igor@0
|
278
|
igor@0
|
279 %# # увеличиваем логический том и файловую систему
|
igor@0
|
280 %# lvextend --extents +88349 /dev/TURBO/vol1
|
igor@0
|
281 %# mount -o remount,resize /vol1
|
igor@0
|
282 \end{verbatim}
|
igor@0
|
283
|
igor@0
|
284 Стартовый и стоповый скрипты легко создать.
|
igor@0
|
285 Стартовый скрипт просто собирает зеркалированные пары RAID 1,
|
igor@0
|
286 собирает все RAID 0 и запускает процесс мониторинга mdadm.
|
igor@0
|
287 Стоповый скрипт останавливает монитор mdadm,
|
igor@0
|
288 останавливает RAID 0 и, в последнюю очередь,
|
igor@0
|
289 останавливает RAID 1.
|
igor@0
|
290
|
igor@0
|
291 \subsection{Совместный доступ к блочным хранилищам}
|
igor@0
|
292 Теперь, после того как мы увидели конкретный пример ATA over Ethernet в действии,
|
igor@0
|
293 может возникнуть вопрос: \dq{}А что произойдёт, если другой хост попытается получить
|
igor@0
|
294 доступ к данным, когда с ними уже работает какой-то хост в сети?\dq{}
|
igor@0
|
295 Сможет ли этот второй хост подмонтировать файловую систему JFS и получить доступ
|
igor@0
|
296 к тем же данным? Короткий ответ такой: \dq{}Да, но это не безопасно!\dq{}.
|
igor@0
|
297 JFS, как и ext3, как и многие другие файловые системы спроектированы
|
igor@0
|
298 для использования на отдельном хосте. И для таких файловых систем
|
igor@0
|
299 одновременный доступ с нескольких хостов приведёт к повреждениям.
|
igor@0
|
300 Причина -- в кэш-буфере, который унифицирован с кэшем страниц в ядре 2.6.
|
igor@0
|
301
|
igor@0
|
302 Linux кэширует данные файловых систем в оперативной памяти
|
igor@0
|
303 везде, где это только возможно, дабы избежать использования
|
igor@0
|
304 медленного блочного устройства и добиться хорошего прироста производительности.
|
igor@0
|
305 Вы могли видеть результат наглядно,
|
igor@0
|
306 когда, например, запускали \textbf{find} дважды
|
igor@0
|
307 поверх одного и того же каталога.
|
igor@0
|
308
|
igor@0
|
309 Некоторые файловые системы спроектированы так, что они могут использоваться одновременно
|
igor@0
|
310 несколькими хостами — такие файловые системы называют \textit{кластерными}.
|
igor@0
|
311 Они имеют механизмы для проверки, синхронизирован ли кэш на всех
|
igor@0
|
312 машинах с нижележащей файловой системой.
|
igor@0
|
313 Отличный пример такой системы с открытым кодом это GFS.
|
igor@0
|
314 GFS использует кластерное программное обеспечение
|
igor@0
|
315 для того чтобы отследить, кто из группы хостов
|
igor@0
|
316 работает с файловой системой.
|
igor@0
|
317 Для того чтобы убедиться,
|
igor@0
|
318 что разные хосты договариваются друг с другом
|
igor@0
|
319 при совместном доступе к файловой системе,
|
igor@0
|
320 в GFS используются блокировки.
|
igor@0
|
321
|
igor@0
|
322 Когда используются кластерные файловые системы, такие как GFS,
|
igor@0
|
323 становится возможным совместный доступ множества хостов
|
igor@0
|
324 к одному и тому же блочному устройству по сети.
|
igor@0
|
325 Не нужно ничего типа NFS-сервера, поскольку
|
igor@0
|
326 каждый хост работает с хранилищем непосредственно.
|
igor@0
|
327
|
igor@0
|
328 Но есть одна загвоздка.
|
igor@0
|
329 Чем больше дисков вы используете, тем выше шансы,
|
igor@0
|
330 что один из дисков засбоит.
|
igor@0
|
331 В этой ситуации обычно используется RAID,
|
igor@0
|
332 который добавляет избыточность.
|
igor@0
|
333 К сожалению, программный RAID Linux
|
igor@0
|
334 пока что не умеет работать с кластерными файловыми системами.
|
igor@0
|
335 Это означает, что каждый хост
|
igor@0
|
336 в сети не сможет запускать mdadm.
|
igor@0
|
337
|
igor@0
|
338 Кластерное программное обеспечение для Linux развивается
|
igor@0
|
339 с большой скоростью. Есть надежда что рано или поздно RAID будет поддерживать кластерные файловые системы.
|
igor@0
|
340 До этого момента мало вариантов использования AoE в кластерных системах.
|
igor@0
|
341 Основная идея — централизовать функциональность RAID.
|
igor@0
|
342 Можно купить один или два Coraid RAIDblade
|
igor@0
|
343 и сделать чтобы кластерные узлы использовали их.
|
igor@0
|
344 RAIDblade\rq{}ы будут управлять EtherDrive\rq{}ами,
|
igor@0
|
345 которые должны подключаться за них.
|
igor@0
|
346 Или тоже самое можно сделать на обычной Linux-системе,
|
igor@0
|
347 которая подключит массивы, сделает на них RAID
|
igor@0
|
348 и с помощью ATA over Ethernet экспортирует его как готовое устройство.
|
igor@0
|
349 Это может сделать, например, программа [vblade].
|
igor@0
|
350
|
igor@0
|
351 \subsection{Резервное копирование}
|
igor@0
|
352 Поскольку AoE выводит недорогие диски в Ethernet-сеть, многие админы
|
igor@0
|
353 могут заинтересоваться в использовании AoE для создания резервных копий.
|
igor@0
|
354 Часто в стратегиях резервного копирования используются двухуровневые хранилища,
|
igor@0
|
355 которые не такие быстрые как on-line хранилища, но и не такие медленные для доступа как лента.
|
igor@0
|
356 ATA over Ethernet даёт возможность легко использовать дешёвые ATA-диски как хранилище второго уровня.
|
igor@0
|
357
|
igor@0
|
358 Но вообще говоря, с такими дешёвыми жёсткими дисками и стабильным программным RAID,
|
igor@0
|
359 почему бы не использовать диски как носитель для хранения резервных копий?
|
igor@0
|
360 В такой системе резервного копирования, в отличие от ленточной,
|
igor@0
|
361 есть возможность непосредственного доступа к заархивированным файлам.
|
igor@0
|
362
|
igor@0
|
363 В нескольких программах резервного копирования при создании резервных копий
|
igor@0
|
364 используются преимущества возможностей файловых систем.
|
igor@0
|
365 Например, используя жёсткие ссылки они могут делать полные бэкапы
|
igor@0
|
366 с эффективностью инкрементальных. Подробности
|
igor@0
|
367 здесь ([rsync Backups http://www.mikerubel.org/computers/rsync\_snapshots])
|
igor@0
|
368 и здесь ([Backup PC http://backuppc.sourceforge.net/]).
|
igor@0
|
369
|
igor@0
|
370 \subsection{Заключение}
|
igor@0
|
371 Размещение недорогих дисков в локальной сети это одна из тех идей,
|
igor@0
|
372 которая заставляет подумать \dq{}Почему это интересно раньше никто не сделал?\dq{}.
|
igor@0
|
373 С помощью простого сетевого протокола можно развязать хранилища
|
igor@0
|
374 и сервера, не используя при этом дорогого аппаратного обеспечения
|
igor@0
|
375 и сложной сетевой инфраструктуры. В простой Ethernet сети нет необходимости
|
igor@0
|
376 в сложном, развитом но требовательном к ресурсам стеке протоколов TCP/IP.
|
igor@0
|
377
|
igor@0
|
378 Если вы используете хранилища в локальной сети, и если настройки
|
igor@0
|
379 доступа к хранилищу путём конфигурирование сети Ethernet достаточно,
|
igor@0
|
380 тогда ATA over Ethernet подойдёт вас лучше всего.
|
igor@0
|
381 Если вас интересуют такие вещи как шифрование, возможность маршрутизации
|
igor@0
|
382 и контроль доступа, посмотрите iSCSI.
|
igor@0
|
383
|
igor@0
|
384 С AoE появляется простое альтернативное решение для организации хранилищ на Linux,
|
igor@0
|
385 которой ранее явно не хватало. С простотой появляются и возможности.
|
igor@0
|
386 AoE может использоваться как строительный блок в любом решении для хранения.
|
igor@0
|
387 Дальше уже ваша фантазия.
|
igor@0
|
388
|
igor@0
|
389 \subsection{Преимущества и недостатки AoE}
|
igor@0
|
390 Преимущества и недостатки AoE в сравнении с iSCSI.
|
igor@0
|
391
|
igor@0
|
392 Преимущества:
|
igor@0
|
393 \begin{itemize}
|
igor@0
|
394 \item Низкая стоимость
|
igor@0
|
395 \item Высокая производительность
|
igor@0
|
396 \item Простота
|
igor@0
|
397 \end{itemize}
|
igor@0
|
398
|
igor@0
|
399 Недостатки:
|
igor@0
|
400 \begin{itemize}
|
igor@0
|
401 \item Низкая масштабируемость, возможность использования только в пределах одной Ethernet-сети
|
igor@0
|
402 \item Отсутствие механизмов обеспечения безопасности
|
igor@0
|
403 \item Отсутствие механизмов контроля ошибок передачи данных, за исключением тех, что есть у самой сети Ethernet (см, например \url{http://lists.xensource.com/archives/html/xen-devel/2005-05/msg00832.html})
|
igor@0
|
404 \end{itemize}
|
igor@0
|
405
|
igor@0
|
406 \subsection{Дополнительная информация}
|
igor@0
|
407 \begin{itemize}
|
igor@0
|
408 \item \htmladdnormallinkfoot{ATA over Ethernet}{http://xgu.ru/wiki/aoe} (рус.)
|
igor@0
|
409 \item \htmladdnormallinkfoot{ATA over Ethernet}{http://en.wikipedia.org/wiki/ATA\_over\_Ethernet}(англ.) в Wikipedia
|
igor@0
|
410 \item \htmladdnormallinkfoot{ATA Over Ethernet: Putting Hard Drives on the LAN}{http://www.linuxjournal.com/article/8149} — статья в Linux Journal
|
igor@0
|
411 \item \htmladdnormallinkfoot{Resources for "ATA Over Ethernet: Putting Hard Drives on the LAN"}{http://www.linuxjournal.com/article/8201} (англ.)
|
igor@0
|
412 \item \htmladdnormallinkfoot{Resources for "ATA Over Ethernet: Putting Hard Drives on the LAN"}{http://www.linuxjournal.com/article/8201} (англ.) — дополнительные ссылки в Linux Journal
|
igor@0
|
413 \item \htmladdnormallinkfoot{The ATA over Ethernet (AoE) Protocol}{http://www.linux-mag.com/index.php?option=com\_content\&task=view\&id=2069\&Itemid=2307} (англ.) — статья на Linux Magazine (требуется регистрация)
|
igor@0
|
414 \item \htmladdnormallinkfoot{Using AoE in FreeBSD}{http://www.coraid.com/support/freebsd/usingaoe.html} — Поддержка AoE в FreeBSD
|
igor@0
|
415 \item \htmladdnormallinkfoot{Протоколы сетей хранения данных. Часть I — ATA over Ethernet}{http://www.samag.ru/cgi-bin/go.pl?q=articles;n=09.2005;a=15} — статья в журнале Системный администратор
|
igor@0
|
416 \item \htmladdnormallinkfoot{The Coraid Linux NAS HOWTO}{http://www.coraid.com/support/cln/CLN-HOWTO.html} (англ.) — HOWTO по разворачиванию NAS на базе ATA over Ethernet
|
igor@0
|
417 \item \htmladdnormallinkfoot{(Xen-users) HOWTO: AOE in domU and boot from it.}{http://lists.xensource.com/archives/html/xen-users/2006-07/msg00595.html} (англ.
|
igor@0
|
418 \item \htmladdnormallinkfoot{Access over Ethernet Insecurities in AoE SLIDES}{http://www.slideshare.net/amiable\_indian/access-over-ethernet-insecurites-in-aoe/} (англ.)
|
igor@0
|
419 \item \htmladdnormallinkfoot{"iSCSI killer" Native in Linux}{http://hardware.slashdot.org/article.pl?sid=06/07/31/1143230} (англ.) — обсуждение AoE на Slashdot
|
igor@0
|
420 \item \htmladdnormallinkfoot{OpenNews: ATA over Ethernet в Linux}{http://www.opennet.ru/openforum/vsluhforumID3/36130.html} — обсуждение статьи на OpenNet
|
igor@0
|
421 \item \htmladdnormallinkfoot{OpenNews: Построение SAN для Xen на основе DRBD, LVM и GNBD" }{http://www.opennet.ru/openforum/vsluhforumID3/36804.html} — другое обсуждение на OpenNet, где затрагиваются вопросы сравнения AoE и iSCSI
|
igor@0
|
422 \end{itemize}
|
igor@0
|
423
|
igor@0
|
424
|