GNU/Linux >> Linux Esercitazione >  >> Linux

Emulazione di dischi di grandi dimensioni in Linux con VDO

Qualche tempo fa. Avevo bisogno di scrivere uno script che partizionasse e formattasse i dischi per un progetto di big data. Se la dimensione del disco era abbastanza grande, dovevo utilizzare una partizione GUID Partition Table (GPT), altrimenti utilizzare una partizione Master Boot Record (MBR). Il problema era che non avevo accesso a sistemi con dischi di grandi dimensioni per testare questo script.

Mi sono ricordato che Red Hat Enterprise Linux (RHEL) 7.5 veniva distribuito con una nuova funzionalità chiamata Virtual Disk Optimizer (VDO), che consentiva la compressione e la deduplicazione su disco. Ho deciso di vedere se questa nuova funzionalità avrebbe aiutato la mia situazione. Posso prendere un piccolo disco, diciamo 10 GB, e farlo sembrare un disco da 10 TB per il sistema operativo?

Ovviamente, nessuna tecnologia di compressione mi permetterebbe di memorizzare effettivamente 10 TB su un disco da 10 GB, ma nel mio caso avevo solo bisogno di emulare logicamente un disco da 10 TB. Funzionerebbe?

Vediamo.

Esempio

In questo esempio, utilizzo Red Hat Enterprise Linux 8.1 sotto VirtualBox per il test, ma questa procedura dovrebbe funzionare con qualsiasi versione di Linux che include VDO. Per fare ciò, io:

  1. Installato il vdo e kmod-vdo pacchetti:
[root@defiant ~]# yum install vdo kmod-kvdo
  1. Ho creato un disco da 10 GB e l'ho collegato alla mia VM:
[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. Creato il volume 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. Creata una partizione GPT:
[root@defiant ~]# parted /dev/mapper/vdo-disk mklabel gpt mkpart p1 xfs 1MB 10TB
Information: You may need to update /etc/fstab.
  1. Visualizzato i risultati:
[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. Creato un filesystem e montato:
[root@defiant ~]# mkdir /data
  1. Disco formattato (questa parte richiederà probabilmente molto tempo):
[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. Disco montato:
[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

Se hai seguito, ora hai emulato un disco da 10 TB. Nota che, con l'overhead, mostra solo 9,1 TB, ma puoi sperimentare le dimensioni per ottenere le dimensioni di cui hai bisogno. Ovviamente non puoi effettivamente archiviare grandi quantità di dati su questo disco, ma allo scopo di emulare logicamente un disco da 10 TB, questa configurazione mi è stata utile.

Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente.


Linux
  1. Controlla lo spazio su disco utilizzato su Linux con du

  2. Come partizionare un disco in Linux

  3. Comando Linux DD - 15 esempi con tutte le opzioni

  4. Linux – Rendi più lenta la copia del disco/disco?

  5. Preparare i dischi dati sui server cloud Linux

Come creare partizioni del disco con Parted Command in Linux

Come clonare dischi con il comando dd di Linux

Come visualizzare l'utilizzo del disco con Duf su Linux e Unix

Crea e gestisci le partizioni del disco con Parted in Linux

Parted Magic Disk Live CD aggiornato con Linux 4.11.4, ZFS su Linux

WSL2 ora può montare direttamente i dischi ext4 di Linux