GNU/Linux >> Tutoriales Linux >  >> Linux

Emulación de discos grandes en Linux con VDO

Hace tiempo. Necesitaba escribir un script que particionara y formateara discos para un proyecto de big data. Si el tamaño del disco era lo suficientemente grande, necesitaba usar una partición de tabla de particiones GUID (GPT); de lo contrario, usar una partición de registro de arranque maestro (MBR). El problema era que no tenía acceso a sistemas con discos grandes para probar este script.

Recordé que Red Hat Enterprise Linux (RHEL) 7.5 se estaba enviando con una nueva función llamada Virtual Disk Optimizer (VDO), que permitía la compresión y la deduplicación en disco. Decidí ver si esta nueva característica ayudaría a mi situación. ¿Puedo tomar un disco pequeño, digamos de 10 GB, y hacer que parezca un disco de 10 TB para el sistema operativo?

Obviamente, ninguna tecnología de compresión me permitiría almacenar 10 TB en un disco de 10 GB, pero en mi caso, solo necesitaba emular lógicamente un disco de 10 TB. ¿Funcionaría esto?

Veamos.

Ejemplo

En este ejemplo, uso Red Hat Enterprise Linux 8.1 bajo VirtualBox para probar, pero este procedimiento debería funcionar con cualquier versión de Linux que incluya VDO. Para lograr esto, yo:

  1. Instalado el vdo y kmod-vdo paquetes:
[root@defiant ~]# yum install vdo kmod-kvdo
  1. Creé un disco de 10 GB y lo adjunté a mi máquina virtual:
[root@defiant ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   32G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   31G  0 part 
  ├─rhel-root 253:0    0 27.8G  0 lvm  /
  └─rhel-swap 253:1    0  3.2G  0 lvm  [SWAP]
sdb             8:16   0   10G  0 disk 
sr0            11:0    1 1024M  0 rom  
  1. Creó el volumen VDO:
[root@defiant ~]# vdo create --name=vdo-disk --device=/dev/sdb --vdoLogicalSize=10T
Creating VDO vdo-disk
Starting VDO vdo-disk
Starting compression on VDO vdo-disk
VDO instance 0 volume is ready at /dev/mapper/vdo-disk
  1. Creó una partición GPT:
[root@defiant ~]# parted /dev/mapper/vdo-disk mklabel gpt mkpart p1 xfs 1MB 10TB
Information: You may need to update /etc/fstab.
  1. Mostrar los resultados:
[root@defiant ~]# parted /dev/mapper/vdo-disk print
Model: Linux device-mapper (vdo) (dm)
Disk /dev/mapper/vdo-disk: 11.0TB
Sector size (logical/physical): 4096B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End      Size     File system  Name  Flags
 1      1049kB  10000GB  10000GB               p1
  1. Creó un sistema de archivos y lo montó:
[root@defiant ~]# mkdir /data
  1. Formateó el disco (esta parte probablemente llevará mucho tiempo):
[root@defiant ~]# mkfs.xfs /dev/mapper/vdo-disk1 
meta-data=/dev/mapper/vdo-disk1  isize=512    agcount=10, agsize=268435455 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=2441405952, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
  1. Montó el disco:
[root@defiant ~]# mount /dev/mapper/vdo-disk1 /data
[root@defiant ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
devtmpfs               395M     0  395M   0% /dev
tmpfs                  411M     0  411M   0% /dev/shm
tmpfs                  411M  5.7M  406M   2% /run
tmpfs                  411M     0  411M   0% /sys/fs/cgroup
/dev/mapper/rhel-root   28G  1.8G   27G   7% /
/dev/sda1             1014M  291M  724M  29% /boot
tmpfs                   83M     0   83M   0% /run/user/1000
/dev/mapper/vdo-disk1  9.1T   65G  9.1T   1% /data

Si siguió adelante, ahora ha emulado un disco de 10 TB. Tenga en cuenta que, con sobrecarga, solo muestra 9,1 TB, pero puede experimentar con tamaños para obtener el tamaño que necesita. Obviamente, no puede almacenar grandes cantidades de datos en este disco, pero con el fin de emular lógicamente un disco de 10 TB, esta configuración me resultó útil.

¿Quiere probar Red Hat Enterprise Linux? Descárgalo ahora gratis.


Linux
  1. Verifique el espacio en disco usado en Linux con du

  2. Cómo particionar un disco en Linux

  3. Comando DD de Linux:15 ejemplos con todas las opciones

  4. Cómo encontrar archivos grandes de Linux con los comandos find y du

  5. Administrar discos con DiskPart

Cómo crear particiones de disco con Parted Command en Linux

Cómo clonar discos con el comando dd de Linux

Cómo ver el uso del disco con Duf en Linux y Unix

Cree y administre particiones de disco con Parted en Linux

Parted Magic Disk Partitioning Live CD actualizado con Linux 4.11.4, ZFS en Linux

WSL2 ahora puede montar discos Linux ext4 directamente