Поиск по сайту:

Использование ATA Over Ethernet (AoE) в CentOS 7 (инициатор и цель)


Это руководство существует для этих версий ОС

  • CentOS 7.2
  • CentOS 6.3

На этой странице

  1. 1 Предварительное примечание
  2. 2 Включить дополнительные репозитории
  3. 3 Загрузка модуля ядра AoE в обе системы
  4. 4 Настройка сервера (целевого) на сервере 2
  5. 5 Настройка клиента (инициатора) на сервере 1
  6. 6 ссылок

В этом руководстве объясняется, как настроить цель AoE и инициатор AoE (клиент), оба работают под управлением CentOS 7. AoE расшифровывается как «ATA over Ethernet» и представляет собой протокол сети хранения данных (SAN), который позволяет инициаторам AoE использовать устройства хранения на (удаленной) цели AoE с использованием обычного кабеля Ethernet. «Удаленный» в данном случае означает «внутри той же локальной сети», потому что AoE не маршрутизируется за пределами локальной сети (это главное отличие по сравнению с iSCSI). Для инициатора AoE удаленное хранилище выглядит как обычный локально подключенный жесткий диск.

1 Предварительное примечание

Я использую два сервера CentOS 7 здесь:

  • server1.example.com (инициатор): IP-адрес 192.168.1.100
  • server2.example.com (цель): IP-адрес 192.168.1.101

2 Включить дополнительные репозитории

сервер1/сервер2:

Сначала мы импортируем ключи GPG для программных пакетов:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Затем мы включаем репозиторий EPEL в нашей системе CentOS, поскольку многие пакеты, которые мы собираемся установить в ходе этого руководства, недоступны в официальном репозитории CentOS 7:

yum -y install epel-release
yum -y install yum-priorities

Отредактируйте /etc/yum.repos.d/epel.repo...

nano /etc/yum.repos.d/epel.repo

... и добавьте строку priority=10 в секцию [epel]:

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]

Затем мы обновляем наши существующие пакеты в системе:

yum -y update

3 Загрузка модуля ядра AoE в обе системы

Прежде чем мы начнем, мы должны убедиться, что ядро поддерживает AoE:

grep ATA_OVER /boot/config-`uname -r`

Это должно отображать что-то вроде этого:

[ ~]#

Это означает, что AoE был построен как модуль ядра. Давайте проверим, загружен ли модуль:

lsmod | grep aoe

Если вы ничего не получите обратно, это означает, что он не загружен. В этом случае мы можем загрузить его следующим образом:

modprobe aoe

Давайте еще раз проверим, загружен ли модуль:

lsmod | grep aoe
[ ~]#

Чтобы модуль загружался автоматически при загрузке системы, мы добавляем следующую строку в /etc/rc.local:

nano /etc/rc.local
[...]
modprobe aoe
[...]

4 Настройка сервера (целевого) на сервере 2

Во-первых, мы настраиваем цель (server2):

rpm -i http://download.opensuse.org/repositories/home:/cyberorg:/ltsp/CentOS_7/x86_64/vblade-22-3.1.x86_64.rpm

Мы можем использовать неиспользуемые логические тома, файлы образов, жесткие диски (например, /dev/sdb), разделы жесткого диска (например, /dev/sdb1) или устройства RAID (например, /dev/md0) для хранения.

В этом примере я буду использовать файл изображения размером 10 ГБ, который находится в папке хранилища /storage.

mkdir /storage
dd if=/dev/zero of=/storage/storage1.img bs=1024k count=10000

Это создаст файл образа /storage/storage1.img размером 10 ГБ.

Если вместо этого вы хотите использовать логический том, вы можете создать его размером 10 ГБ с именем storage1 в группе томов vg0 следующим образом:

lvcreate -L10G -n storage1 vg0

Теперь мы экспортируем наше запоминающее устройство следующим образом:

vbladed 0 1 ens33 /storage/storage1.img

Первая цифра (0) это номер полки (мажор), вторая (1) номер слота (младший), меняйте эти цифры на свое усмотрение. Каждое устройство AoE идентифицируется парой основных и второстепенных параметров, которые должны быть уникальными (если вы экспортируете несколько устройств), с основным значением в диапазоне 0–65535 и второстепенным значением в диапазоне 0–255. Часть ens33 сообщает vbladed, какое устройство Ethernet использовать, вы можете узнать подробности о ваших устройствах Ethernet, запустив

ifconfig

).

Чтобы экспорт начинался автоматически при каждой загрузке цели, откройте /etc/rc.local...

nano /etc/rc.local

... и добавьте в него следующую строку (после строки modprobe aoe!):

[...]
vbladed 0 1 ens33 /storage/storage1.img
[...]

5 Настройка клиента (инициатора) на сервере 1

На server1 устанавливаем инициатор. Пакета для CentOS 7 нет, но пакет для CentOS 6 работает нормально, поэтому мы будем использовать его здесь.

rpm -i http://download.opensuse.org/repositories/system:/aoetools/CentOS_CentOS-6/x86_64/aoetools-36-1.2.x86_64.rpm

Теперь проверяем, какие устройства хранения AoE доступны:

aoe-discover

Команда

aoe-stat

теперь должны отображаться устройства хранения:

[ ~]#

На данный момент у нас есть новое блочное устройство с именем /dev/etherd/e0.1. Если мы посмотрим на дерево /dev, появится новый узел:

ls -la /dev/etherd/
[ ~]#

Чтобы использовать это устройство, мы должны отформатировать его:

fdisk /dev/etherd/e0.1
[ ~]#

После этого появляется новое устройство /dev/etherd/e0.1p1, которое вы можете увидеть в выводе

ls -l /dev/etherd/
[ ~]#

Теперь мы создаем файловую систему на /dev/etherd/e0.1p1...

mkfs.ext4 /dev/etherd/e0.1p1

... и смонтируйте его для тестовых целей:

mount /dev/etherd/e0.1p1 /mnt

Теперь вы должны увидеть новое устройство в выводах...

mount
[ ~]#

... и

df -h
[ ~]#

Вы можете размонтировать его следующим образом:

umount /mnt

Чтобы устройство монтировалось автоматически во время загрузки, например. в каталоге /storage мы создаем этот каталог...

mkdir /storage

... и добавьте следующую строку в /etc/fstab:

nano /etc/fstab
[...]
/dev/etherd/e0.1p1       /storage        ext4    defaults,auto,_netdev 0 0

Одного этого недостаточно, чтобы смонтировать устройство во время загрузки, потому что материал AoE загружается после чтения /etc/fstab. Поэтому открываем /etc/rc.local...

nano /etc/rc.local

... и добавьте в него следующие строки (после строки modprobe aoe!):

[...]
aoe-discover
sleep 5
mount -a
[...]

В целях тестирования теперь вы можете перезагрузить систему:

reboot

После перезагрузки устройство должно быть смонтировано:

mount
[ ~]#
df -h
[ ~]#

6 ссылок

  • Определение протокола AoE: http://www.coraid.com/RESOURCES/AoE-Protocol-Definition.
  • CentOS: http://www.centos.org/