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:
(Si desea utilizar un archivo de imagen, puede crearlo de la siguiente manera:
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:
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
).
Para iniciar la exportación automáticamente siempre que inicie el destino, abra /etc/rc.local...
... y agregue la siguiente línea (antes de la línea de salida 0):
[...]
/usr/sbin/vbladed 0 1 eth0 /dev/vg0/storage1
[...] |
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
[...]
/dev/etherd/e0.1p1 /storage ext4 defaults,auto,_netdev 0 0 |
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):
[...]
aoe-discover
sleep 5
mount -a
[...] |
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/