GNU/Linux >> Tutoriales Linux >  >> Debian

Uso de ATA a través de Ethernet (AoE) en Debian Squeeze (iniciador y destino)

Esta guía explica cómo puede configurar un objetivo AoE y un iniciador (cliente) de AoE, ambos ejecutando Debian Squeeze. AoE significa "ATA sobre Ethernet" y es un protocolo de red de área de almacenamiento (SAN) que permite a los iniciadores de AoE utilizar dispositivos de almacenamiento en el objetivo de AoE (remoto) mediante un cableado Ethernet normal. "Remoto" en este caso significa "dentro de la misma LAN" porque AoE no se puede enrutar fuera de una LAN (esta es una gran diferencia en comparación con iSCSI). Para el iniciador de AoE, el almacenamiento remoto parece un disco duro normal conectado localmente.

1 nota preliminar

Estoy usando dos servidores Debian Squeeze aquí:

  • servidor1.ejemplo.com (Iniciador):dirección IP 192.168.0.100
  • servidor2.ejemplo.com (Objetivo):dirección IP 192.168.0.101

2 Cargando el módulo kernel aoe en ambos sistemas

servidor1/servidor2:

Antes de comenzar, debemos asegurarnos de que el kernel sea compatible con AoE:

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

Esto debería mostrar algo como esto:

[email protected]:~# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
[email protected]:~#

Esto significa que AoE se creó como un módulo de kernel. Verifiquemos si el módulo ya está cargado:

lsmod | grep aoe

Si no obtiene nada de vuelta, significa que no está cargado. En este caso podemos cargarlo de la siguiente manera:

modprobe aoe

Verifiquemos nuevamente si el módulo está cargado:

lsmod | grep aoe
[email protected]:~# lsmod | grep aoe
aoe                    21380  0
[email protected]:~#

Para que el módulo se cargue automáticamente cuando se inicia el sistema, agregamos el módulo aoe a /etc/modules:

vi /etc/modules

3 Configuración del objetivo (servidor2)

servidor2:

Primero configuramos el objetivo (servidor2):

apt-get install vblade

Podemos utilizar volúmenes lógicos no utilizados, archivos de imagen, discos duros (p. ej., /dev/sdb), particiones de disco duro (p. ej., /dev/sdb1) o dispositivos RAID (p. ej., /dev/md0) para el almacenamiento. En este ejemplo, crearé un volumen lógico de 20 GB llamado almacenamiento1 en el grupo de volúmenes vg0:

lvcreate -L20G -n storage1 vg0

(Si desea utilizar un archivo de imagen, puede crearlo de la siguiente manera:

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

Esto crea el archivo de imagen /storage/storage1.img con un tamaño de 20 GB.

)

Ahora exportamos nuestro dispositivo de almacenamiento de la siguiente manera:

vbladed 0 1 eth0 /dev/vg0/storage1

El primer número (0) es el número de estante (mayor), el segundo (1) el número de ranura (menor), cambia estos números a tu gusto. Cada dispositivo AoE se identifica mediante un par mayor/menor que debe ser único (si está exportando varios dispositivos), con mayor entre 0 y 65535 y menor entre 0 y 255. La parte eth0 le dice a vbladed qué dispositivo ethernet usar (si su dispositivo ethernet es eth1, entonces use eth1; puede conocer sus dispositivos ethernet ejecutando

ifconfig

).

Para iniciar la exportación automáticamente siempre que inicie el destino, abra /etc/rc.local...

vi /etc/rc.local

... y agregue la siguiente línea (antes de la línea de salida 0):

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

aoe
loop

4 Configurando el iniciador (servidor1)

servidor1:

En server1, instalamos el iniciador:

apt-get install aoetools

Ahora comprobamos qué dispositivos de almacenamiento AoE están disponibles:

aoe-discover

El comando

aoe-stat

ahora debería mostrar los dispositivos de almacenamiento:

[email protected]:~# aoe-stat
      e0.1        21.474GB   eth0 up
[email protected]:~#

En este punto, tenemos un nuevo dispositivo de bloque disponible en la caja del cliente llamado /dev/etherd/e0.1. Si echamos un vistazo al árbol /dev, aparece un nuevo nodo:

ls -la /dev/etherd/
[email protected]:~# ls -la /dev/etherd/
total 0
drwxr-xr-x  2 root root     160 Mar 16 13:34 .
drwxr-xr-x 14 root root    3000 Mar 16 13:33 ..
c-w--w----  1 root disk 152,  3 Mar 16 13:33 discover
brw-rw----  1 root disk 152, 16 Mar 16 13:34 e0.1
cr--r-----  1 root disk 152,  2 Mar 16 13:33 err
c-w--w----  1 root disk 152,  6 Mar 16 13:33 flush
c-w--w----  1 root disk 152,  4 Mar 16 13:33 interfaces
c-w--w----  1 root disk 152,  5 Mar 16 13:33 revalidate
[email protected]:~#

En la salida de

fdisk -l

ahora también debería encontrar el nuevo disco duro:

[email protected]:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00029d5c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3793    30461952   83  Linux
/dev/sda2            3793        3917      992257    5  Extended
/dev/sda5            3793        3917      992256   82  Linux swap / Solaris

Disk /dev/etherd/e0.1: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/etherd/e0.1 doesn't contain a valid partition table
[email protected]:~#

Para usar ese dispositivo, debemos formatearlo:

fdisk /dev/etherd/e0.1

[email protected]:~# fdisk /dev/etherd/e0.1
El dispositivo no contiene una tabla de particiones válida de DOS, ni una etiqueta de disco Sun, SGI u OSF
Creación de una nueva etiqueta de disco DOS con identificador de disco 0xa00b110d.
Los cambios permanecerán solo en la memoria, hasta que decidas escribirlos.
Después de eso, por supuesto, el contenido anterior no será recuperable.


El número de cilindros para este disco está establecido en 2610.
No hay nada de malo en eso, pero es mayor que 1024,
y en ciertas configuraciones podría causar problemas con:
1) software que se ejecuta en el momento del arranque (por ejemplo, versiones antiguas de LILO)
2) software de arranque y partición desde otros sistemas operativos
   (por ejemplo, FDISK de DOS, FDISK de OS/2)
Advertencia:indicador no válido 0x0000 de la tabla de particiones 4 será corregida por w(rite)

Comando (m para ayuda): <-- n
Comando acción
   e   extendido
   p   partición principal ( 1-4)
<-- p
Número de partición (1-4): <-- 1
Primer cilindro (1-2610, predeterminado 1):<-- E NTER
Usando el valor predeterminado 1
Último cilindro o +tamaño o +tamañoM o +tamañoK (1-2610, predeterminado 2610):<-- ENTER
Usando el valor predeterminado 2610

Comando (m para ayuda): <-- t
Partición seleccionada 1
Código hex (escriba L para listar los códigos): <-- 83

Comando (m para obtener ayuda): <-- w
¡La tabla de particiones se ha modificado!

Llamar ioctl() para volver a leer la tabla de particiones.
Sincronizar discos.
[ correo electrónico protegido]:~#

Posteriormente, la salida de

fdisk -l

debería tener el siguiente aspecto:

[email protected]:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00029d5c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3793    30461952   83  Linux
/dev/sda2            3793        3917      992257    5  Extended
/dev/sda5            3793        3917      992256   82  Linux swap / Solaris

Disk /dev/etherd/e0.1: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0cf58b15

            Device Boot      Start         End      Blocks   Id  System
/dev/etherd/e0.1p1               1        2610    20964793+  83  Linux
[email protected]:~#

Ahora creamos un sistema de archivos en /dev/etherd/e0.1p1...

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

... y montarlo con fines de prueba:

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

Ahora debería ver el nuevo dispositivo en las salidas de...

mount
[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/etherd/e0.1p1 on /mnt type ext4 (rw)
[email protected]:~#

... y

df -h
[email protected]:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G  806M   27G   3% /
tmpfs                 249M     0  249M   0% /lib/init/rw
udev                  244M  108K  244M   1% /dev
tmpfs                 249M     0  249M   0% /dev/shm
/dev/etherd/e0.1p1     20G  172M   19G   1% /mnt
[email protected]:~#

Puedes desmontarlo así:

umount /mnt

Para que el dispositivo se monte automáticamente en el momento del arranque, p. en el directorio /almacenamiento, creamos ese directorio...

mkdir /storage

... y agregue la siguiente línea a /etc/fstab:

vi /etc/fstab
[...]
/usr/sbin/vbladed 0 1 eth0 /dev/vg0/storage1
[...]

Esto por sí solo no es suficiente para tener el dispositivo montado en el momento del arranque porque las cosas de AoE se cargan después de leer /etc/fstab. Por lo tanto abrimos /etc/rc.local...

vi /etc/rc.local

... y agregue las siguientes líneas (antes de la línea de salida 0):

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

Para fines de prueba, ahora puede reiniciar el sistema:

reboot

Después del reinicio, el dispositivo debe estar montado:

mount
[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/etherd/e0.1p1 on /storage type ext4 (rw,_netdev)
[email protected]:~#
df -h
[email protected]:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G  806M   27G   3% /
tmpfs                 249M     0  249M   0% /lib/init/rw
udev                  244M  108K  244M   1% /dev
tmpfs                 249M     0  249M   0% /dev/shm
/dev/etherd/e0.1p1     20G  172M   19G   1% /storage
[email protected]:~#

5 Enlaces

  • Definición del protocolo AoE:http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
  • Debian:http://www.debian.org/

Debian
  1. Cómo instalar y configurar ZFS en Linux usando Debian Jessie 8.1

  2. Uso de ATA a través de Ethernet (AoE) en CentOS 7 (iniciador y destino)

  3. Uso de ATA a través de Ethernet (AoE) en Ubuntu 12.10 (iniciador y destino)

  4. Configurar ATA sobre Ethernet (AoE) en Debian 8 (iniciador y destino)

  5. Actualización de Debian 6 Squeeze con ISPConfig y courier/postfix a Debian 7 Wheezy

Instalación de Apache2 con compatibilidad con PHP5 y MySQL en Debian Squeeze (LAMP)

Uso de ATA a través de Ethernet (AoE) en Debian Squeeze (iniciador y destino)

Usando mod_spdy con Apache2 en Debian Squeeze

Alojamiento virtual con vsftpd y MySQL en Debian Squeeze

Cómo eliminar archivos y directorios usando la terminal en Debian 10

Cómo configurar un servidor de correo simple pero poderoso usando Postfix, Dovecot y Sasl en Debian 6 (Squeeze)

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