GNU/Linux >> Tutoriales Linux >  >> Linux

Configuración de almacenamiento en bloque en servidores Linux

Introducción

Los volúmenes de almacenamiento en bloque seguro (SBS) son fáciles de usar, altamente redundantes, escalables y de almacenamiento en bloque seguro que puede conectar a los servidores en la nube de Atlantic.Net.

Puede utilizar volúmenes de almacenamiento seguro en bloque para sus necesidades de almacenamiento de archivos, bases de datos, aplicaciones y copias de seguridad. Diseñado para una disponibilidad del 99,999 %, SBS se replica automáticamente varias veces para proteger sus datos de fallas en los componentes. Puede aumentar el almacenamiento sobre la marcha y mover sus volúmenes SBS entre sus servidores en la nube dentro de la misma región.

Esta guía cubrirá cómo crear, configurar, formatear y administrar sus volúmenes SBS en servidores Linux y asume que ya está conectado a su servidor a través de SSH.

Lo que aprenderá en esta guía:
Crear un volumen de almacenamiento en bloque
Configurar un volumen de almacenamiento en bloque para uso inicial
Separar un volumen de almacenamiento en bloque
Adjuntar un volumen de almacenamiento en bloque configurado previamente
Redimensionar un volumen de almacenamiento en bloque
Eliminación de un volumen de almacenamiento en bloque
Se requieren pasos adicionales si se ejecuta SELINUX

Creando un Volumen

Paso 1:Cree el volumen en el panel de control de Atlantic.Net Cloud

In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Add Volume" button. Next select the volume size, name, location, and server you wish to attach the Volume to.

After the Volume is done creating, you should see that the Volume is attached to the server you chose.

Configuración de un volumen para uso inicial

Después de crear un volumen en el Panel de control de Atlantic.Net Cloud, siga los pasos a continuación para configurar su volumen en su servidor Linux por primera vez.

Paso 1:busque el volumen

La forma más fácil de ubicar su volumen en su servidor Linux es ejecutar el comando "ls" en el directorio "/dev/disk/by-id/". El directorio "/dev/disk/by-id/" proporciona nombres de dispositivos persistentes basados ​​en identificadores SCSI que no cambiarán entre reinicios o cuando conecte el volumen a diferentes servidores. Todos los volúmenes de SBS comienzan con el identificador SCSI "scsi-0AN_Volume_" seguido del nombre que le dio a su volumen. Entonces, dado que nombró a su Volumen "Vol1", la ruta a su Volumen será "/dev/disk/by-id/scsi-0AN_Volume_Vol1"

[email protected]:~# ls /dev/disk/by-id/scsi-0AN_Volume_*
/dev/disk/by-id/scsi-0AN_Volume_Vol1

Paso 2:Partición del volumen

Se recomienda encarecidamente que utilice una herramienta de partición moderna que admita la partición GPT como "gdisk" para particionar su volumen. Los volúmenes con formato GPT admiten tamaños más grandes que las herramientas de partición más antiguas, como "fdisk".

Primero instalemos gdisk
Nota:necesitará usar el administrador de paquetes de su sistema operativo para instalar gdisk (es decir, Ubuntu o Debian:apt-get install gdisk, CentOS o Fedora:yum install gdisk, etc.).

apt-get install gdisk

Para comenzar a particionar el Volumen, inicie el programa "gdisk" con la ruta de su Volumen.

[email protected]:~# gdisk /dev/disk/by-id/scsi-0AN_Volume_Vol1

El programa se iniciará, analizará el Volumen y le indicará que ingrese más comandos

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help):

A continuación, crearemos una nueva partición única en nuestro Volumen ingresando el comando "n" y luego presionando Intro para aceptar todos los valores predeterminados

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-2097151966, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-2097151966, default = 2097151966) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

Command (? for help):

Ahora podemos ingresar el comando "p" para imprimir la información de la tabla de particiones antes de escribirla en el disco

Command (? for help): p
Disk /dev/disk/by-id/scsi-0AN_Volume_Vol1: 2097152000 sectors, 1000.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): ECCD068D-408F-43CA-AA2F-15F968E62F7D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 2097151966
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      2097151966   1000.0 GiB  8300  Linux filesystem

Command (? for help):

Arriba podemos ver que hemos creado una sola partición en la memoria que utiliza todo el espacio en nuestro Volumen. Ahora tenemos que escribir (guardar) la tabla de particiones en el Volumen usando el comando "w". Cuando se le solicite, responda "Y" para continuar.

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/disk/by-id/scsi-0AN_Volume_Vol1.
The operation has completed successfully.

Paso 3:Cree un sistema de archivos en el volumen

Ahora tenemos que crear un sistema de archivos para almacenar datos en el Volumen. Los sistemas de archivos más comunes en Linux son ext4 y xfs. En esta guía usaremos ext4.

Vamos a crear un sistema de archivos ext4 utilizando el programa "mkfs.ext4" en la partición que acabamos de crear. Tenga en cuenta que simplemente agregamos "-part1" a la ruta de nuestro Volumen cuando llamamos al comando.

[email protected]:~# mkfs.ext4 /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 
mke2fs 1.42.13 (17-May-2015)
Discarding device blocks: done                            
Creating filesystem with 262143739 4k blocks and 65536000 inodes
Filesystem UUID: 60bd3dd1-cb39-4a64-a015-771ae50bcc16
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

 Paso 4:montar el volumen

El último paso antes de que podamos comenzar a usar nuestro Volumen es montarlo en un directorio.

Vamos a crear un directorio

[email protected]:~# mkdir -p /mnt/Vol1

Ahora monte la partición de volumen en el directorio usando el comando de montaje

[email protected]:~# mount -o discard,defaults /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1/

Ahora podemos ver que nuestro Volumen está montado y listo para usar

[email protected]:~# df -h /mnt/Vol1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       985G   72M  935G   1% /mnt/Vol1

Opcional:para que su volumen se monte automáticamente después de un reinicio, debe agregar una entrada a su archivo /etc/fstab

echo '/dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1 ext4 defaults,nofail,discard 0 0' | tee -a /etc/fstab

Su volumen ahora está listo para usar.

Separación de un volumen de un servidor en la nube

Cuando ya no desee utilizar el volumen en su servidor en la nube, siempre debe desmontar el volumen en su servidor en la nube antes de emitir una solicitud de separación en el panel de control de la nube de Atlantic.Net.

Paso 1:Desmontar el volumen

Primero necesitamos determinar si el Volumen está montado. Para hacer esto, usaremos el comando de bloque de lista "lsblk" con el indicador "mountpoint" y la ruta a nuestro Volumen.
Nota:Recuerde que la ruta a nuestro volumen siempre es "/dev/disk/by-id/ scsi-0AN_Volume_” seguido del nombre que le dimos a nuestro Volumen. En el siguiente ejemplo, nuestro Volumen se llama "Vol1"

[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1
MOUNTPOINT

/mnt/Vol1

La salida nos muestra que nuestro Volumen está montado en "/mnt/Vol1". Si no ve nada en la lista debajo de "MOUNTPOINT", entonces su volumen no está montado y puede pasar al Paso 3 a continuación.

Ahora podemos desmontar el Volumen usando el comando "desmontar"

[email protected]:~# umount /mnt/Vol1/

Y podemos confirmar que el Volumen ya no está montado ejecutando el comando "lsblk" con el indicador "mountpoint" y la ruta a nuestro Volumen nuevamente.

[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1
MOUNTPOINT


Ahora puede emitir un comando de separación desde el Panel de control de Atlantic.Net

Paso 3:separe el volumen del servidor en la nube

In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Detach" button next to the Volume you wish to detach.

In the pop-up window, confirm you wish to detach the Volume from the Cloud Server by clicking the "Detach" button.

Adjuntar un volumen previamente configurado a un servidor en la nube

Si configuró previamente un volumen en un servidor en la nube y lo desconectó del servidor en la nube y desea adjuntarlo al mismo u otro servidor en la nube, siga las instrucciones a continuación.

Paso 1:adjunte el volumen al servidor en la nube deseado

In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Attach" button next to the Volume you wish to attach.

In the pop-up window, select the server you wish to attach the volume to.

After the Volume is done attaching, you should see that the Volume is attached to the server you chose.

Paso 2:busque el volumen

La forma más fácil de ubicar su volumen en su servidor Linux es ejecutar el comando "ls" en el directorio "/dev/disk/by-id/". El directorio "/dev/disk/by-id/" proporciona nombres de dispositivos persistentes basados ​​en identificadores SCSI que no cambiarán entre reinicios o cuando conecte el volumen a diferentes servidores. Todos los volúmenes de SBS comienzan con el identificador SCSI "scsi-0AN_Volume_" seguido del nombre que le dio a su volumen. Entonces, dado que nombró a su Volumen "Vol1", la ruta a su Volumen será "/dev/disk/by-id/scsi-0AN_Volume_Vol1"

[email protected]:~# ls /dev/disk/by-id/scsi-0AN_Volume_*
/dev/disk/by-id/scsi-0AN_Volume_Vol1  /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1

Paso 3:montar el volumen

El último paso antes de que podamos comenzar a usar nuestro Volumen es montarlo en un directorio.

Vamos a crear un directorio

[email protected]:~# mkdir -p /mnt/Vol1

Ahora monte la partición de volumen en el directorio usando el comando de montaje

[email protected]:~# mount -o discard,defaults /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1/

Ahora podemos ver que nuestro Volumen está montado y listo para usar

[email protected]:~# df -h /mnt/Vol1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       985G   72M  935G   1% /mnt/Vol1

Opcional:para que su volumen se monte automáticamente después de un reinicio, debe agregar una entrada a su archivo /etc/fstab

echo '/dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1 ext4 defaults,nofail,discard 0 0' | tee -a /etc/fstab

Su volumen ahora está listo para usar.

Cambiar el tamaño de un volumen

¿Te estás quedando sin espacio? Si desea expandir el tamaño de almacenamiento de un Volumen, siga los pasos a continuación.

Paso 1:cambiar el tamaño del volumen en el panel de control de Atlantic.Net Cloud

In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Resize" button next to the Volume you wish to resize to a larger size.

In the pop-up window,  select the size you wish to resize the Volume to and then press the "Resize" button.

Ahora debería ver que el volumen se ha redimensionado en el Panel de control

Paso 2:busque el volumen

La forma más fácil de ubicar su volumen en su servidor Linux es ejecutar el comando "ls" en el directorio "/dev/disk/by-id/". El directorio "/dev/disk/by-id/" proporciona nombres de dispositivos persistentes basados ​​en identificadores SCSI que no cambiarán entre reinicios o cuando conecte el volumen a diferentes servidores. Todos los volúmenes de SBS comienzan con el identificador SCSI "scsi-0AN_Volume_" seguido del nombre que le dio a su volumen. Entonces, dado que nombró a su Volumen "Vol1", la ruta a su Volumen será "/dev/disk/by-id/scsi-0AN_Volume_Vol1"

[email protected]:~# ls /dev/disk/by-id/scsi-0AN_Volume_*
/dev/disk/by-id/scsi-0AN_Volume_Vol1  /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1

Paso 3:copia de seguridad de la información de la partición

Antes de cambiar el tamaño de la partición del Volumen para usar el espacio adicional, crearemos una copia de seguridad de nuestra tabla de particiones existente usando el comando "gdisk"

Para comenzar el proceso, inicie el programa "gdisk" con la ruta de su Volumen.

[email protected]:~# gdisk /dev/disk/by-id/scsi-0AN_Volume_Vol1

El programa se iniciará, analizará el Volumen y le indicará que ingrese más comandos

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help):

A continuación, ingrese el comando "b" para crear una copia de seguridad de la tabla de particiones y proporcione un nombre para el archivo de copia de seguridad.

Command (? for help): b
Enter backup filename to save: partition_table.backup
The operation has completed successfully.

Command (? for help):

Ahora necesitamos reubicar las estructuras de datos de respaldo de nuestra tabla de particiones. Esto debe hacerse porque hemos redimensionado el volumen.

Ingrese al modo experto usando el comando "x"

Command (? for help): x

Ahora reubique las estructuras de datos de respaldo con el comando "e"

Expert command (? for help): e
Relocating backup data structures to the end of the disk

Ahora regrese al modo normal con el comando "m"

Expert command (? for help): m

Paso 3:cambia el tamaño de la partición en el volumen 

Antes de cambiar el tamaño de la partición, veamos la información de la tabla de particiones

Command (? for help): p
Disk /dev/disk/by-id/scsi-0AN_Volume_Vol1: 8388608000 sectors, 3.9 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): ECCD068D-408F-43CA-AA2F-15F968E62F7D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 8388607966
Partitions will be aligned on 2048-sector boundaries
Total free space is 6291458014 sectors (2.9 TiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      2097151966   1000.0 GiB  8300  Linux filesystem

Arriba podemos ver que el tamaño de la partición aún no ha cambiado y que solo tenemos una partición en nuestro Volumen.

A continuación, reemplazaremos la información de partición existente eliminándola y volviéndola a crear con el nuevo tamaño más grande que ofrece nuestro Volumen.

Primero elimine la información de la partición usando el comando "d"

Command (? for help): d
Using 1

Luego, creamos la partición nuevamente usando el comando "n" y presionamos enter para aceptar todos los valores predeterminados. Esto creará una única partición como la que teníamos antes, conservando así nuestros datos y ofreciendo más espacio disponible para la partición.

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-8388607966, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-8388607966, default = 8388607966) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

A continuación, podemos volver a ver la información de la tabla de particiones:

Command (? for help): p
Disk /dev/disk/by-id/scsi-0AN_Volume_Vol1: 8388608000 sectors, 3.9 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): ECCD068D-408F-43CA-AA2F-15F968E62F7D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 8388607966
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      8388607966   3.9 TiB     8300  Linux filesystem

Arriba podemos ver que el tamaño de la partición ahora refleja nuestro espacio adicional.

Ahora tenemos que escribir (guardar) la tabla de particiones en el Volumen usando el comando "w". Cuando se le solicite, responda "Y" para continuar.

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/disk/by-id/scsi-0AN_Volume_Vol1.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.

Paso 4:informar a Linux de los cambios de partición

La herramienta más fácil de usar para informar a Linux sobre el cambio de partición es "partprobe", que es parte del "paquete separado"

Instale parted
Nota:necesitará usar el administrador de paquetes de su sistema operativo para instalar parted (es decir, Ubuntu o Debian:apt-get install parted, CentOS o Fedora:yum install parted, etc.).

apt-get install parted

Una vez instalado “parted”, podemos ejecutar el comando partprobe con la ruta a nuestro dispositivo

[email protected]:~# partprobe /dev/disk/by-id/scsi-0AN_Volume_Vol1

Linux ahora sabe acerca de los cambios de partición

Paso 5:cambiar el tamaño del sistema de archivos

Dado que nuestro volumen se configuró con el sistema de archivos ext4, debemos usar el comando "resize2fs" con la ruta a la partición de nuestro dispositivo para cambiar el tamaño del dispositivo. Esto se puede hacer mientras el volumen está montado.
Nota:El uso del comando resize2fs en un volumen montado en CentOS 6 o Debian 7 puede tardar mucho tiempo en completarse. Se recomienda que, si está utilizando cualquiera de esas versiones de sistemas operativos, desmonte su volumen antes de continuar.
Nota:si su volumen está utilizando el sistema de archivos XFS, debe usar "xfs_growfs /path/to/mountpoint" para cambiar el tamaño de su sistema de archivos.

[email protected]:~# resize2fs /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 is mounted on /mnt/Vol1; on-line resizing required
old_desc_blocks = 63, new_desc_blocks = 250
The filesystem on /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 is now 1048575739 (4k) blocks long.

Tu espacio adicional ahora está listo para usar.

Eliminación de un volumen

Cuando ya no desee un Volumen, siga los pasos a continuación.

Nota:Siempre debe desmontar el volumen en su servidor de la nube antes de emitir una solicitud de eliminación en el panel de control de la nube de Atlantic.Net.

Paso 1:Desmontar el volumen

Primero necesitamos determinar si el Volumen está montado. Para hacer esto, usaremos el comando de bloque de lista "lsblk" con el indicador "mountpoint" y la ruta a nuestro Volumen.
Nota:Recuerde que la ruta a nuestro volumen siempre es "/dev/disk/by-id/ scsi-0AN_Volume_” seguido del nombre que le dimos a nuestro Volumen. En el siguiente ejemplo, nuestro Volumen se llama "Vol1"

[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1
MOUNTPOINT

/mnt/Vol1

La salida nos muestra que nuestro Volumen está montado en "/mnt/Vol1". Si no ve nada en la lista debajo de "MOUNTPOINT", entonces su volumen no está montado y puede pasar al Paso 3 a continuación.

Ahora podemos desmontar el Volumen usando el comando "desmontar"

[email protected]:~# umount /mnt/Vol1/

Y podemos confirmar que el Volumen ya no está montado ejecutando el comando "lsblk" con el indicador "mountpoint" y la ruta a nuestro Volumen nuevamente.

[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1
MOUNTPOINT


Paso 2:elimine el volumen en el panel de control de Atlantic.Net

In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Delete" button next to the Volume you wish to delete.

In the pop-up window, carefully read the entire message, and click the "Delete" button to remove the Volume.

El Volumen ahora se ha eliminado y ya no se le cobrará por él en el futuro.

Pasos adicionales necesarios si se ejecuta SELINUX

SELINUX es una mejora de seguridad integrada en la mayoría de las distribuciones de Linux. Brinda a los usuarios más control de acceso y debe habilitarse en entornos de producción para reducir en gran medida la superficie de ataque de su servidor.

Si utiliza almacenamiento ACP SBS para datos de aplicaciones, es posible que SELINUX impida que ciertas aplicaciones accedan o escriban archivos o directorios.

En este ejemplo, nuestra carpeta de Apache /var/www/html se encuentra en un volumen lógico de SBS.

Usaremos el comando chcon para permitir que el daemon de Apache tenga acceso de lectura/escritura al volumen SBS.

# chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/

(si desea permitir la raíz web completa)

# chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/uploads/

(o simplemente carga la carpeta)

Para dar al proceso de Apache la propiedad del volumen, puede usar chown:

# chown apache:apache -R /var/www/html/

Para distribuir permisos de archivos recursivos, combine los comandos find y chmod así:

# find . -type f -exec chmod 0644 {} \;

Nota: chmod 644 significa que solo el propietario puede escribir/modificar, solo lectura para otros (grupo) incluido.

Para distribuir permisos de carpeta recursivos, combine los comandos find y chmod de la siguiente manera:

# find . -type d -exec chmod 0755 {} \;

Nota: 755 significa acceso de lectura y ejecución para todos y también acceso de escritura para el propietario del archivo.

Ahora configure SELINUX para permitir que Apache sirva todos los archivos de forma recursiva:

# chcon -t httpd_sys_content_t /var/www/html/ -R

O, si prefiere permitir que Apache solo acceda a directorios específicos:

# chcon -t httpd_sys_rw_content_t /var/www/html/logs/ -R

# chcon -t httpd_sys_rw_content_t /var/www/html/uploads/ -R

Para referencia futura, tome nota de estos dos parámetros SELINX necesarios para HTTP (Apache):

httpd_sys_content_t – allow Apache to serve contents

httpd_sys_rw_content_t – allow Apache to write to those path

Linux
  1. Configuración de almacenamiento local en Linux con Stratis

  2. Arrancar un servidor desde un volumen de Cloud Block Storage

  3. Los mejores servidores Web Linux

  4. Ejemplos de comandos lvremove en Linux

  5. Ejemplos de comandos lvdisplay en Linux

Configuración del acceso al servidor VNC en Redhat Linux

Cómo instalar Grafana en servidores Linux

Administrador de volúmenes lógicos (LVM) versus partición estándar en Linux

Instalación y configuración de Jenkins en Linux

Cómo asegurar servidores Linux con SE Linux

Adjunte un volumen de Cloud Block Storage a un servidor de Windows OnMetal