Использование ATA Over Ethernet (AoE) в CentOS 7 (инициатор и цель)
Это руководство существует для этих версий ОС
- CentOS 7.2
- CentOS 6.3
На этой странице
- 1 Предварительное примечание
- 2 Включить дополнительные репозитории
- 3 Загрузка модуля ядра AoE в обе системы
- 4 Настройка сервера (целевого) на сервере 2
- 5 Настройка клиента (инициатора) на сервере 1
- 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/