Il y a quelque temps. J'avais besoin d'écrire un script qui partitionnerait et formaterait des disques pour un projet Big Data. Si la taille du disque était suffisamment grande, je devais utiliser une partition de table de partition GUID (GPT), sinon utiliser une partition Master Boot Record (MBR). Le problème était que je n'avais pas accès à des systèmes avec de gros disques pour tester ce script.
Je me suis souvenu que Red Hat Enterprise Linux (RHEL) 7.5 était livré avec une nouvelle fonctionnalité appelée Virtual Disk Optimizer (VDO), qui permettait la compression et la déduplication sur disque. J'ai décidé de voir si cette nouvelle fonctionnalité aiderait ma situation. Puis-je prendre un petit disque, disons 10 Go, et le faire ressembler à un disque de 10 To pour le système d'exploitation ?
Évidemment, aucune technologie de compression ne me permettrait réellement de stocker 10 To sur un disque de 10 Go, mais dans mon cas, j'avais juste besoin d'émuler logiquement un disque de 10 To. Est-ce que ça marcherait ?
Voyons.
Exemple
Dans cet exemple, j'utilise Red Hat Enterprise Linux 8.1 sous VirtualBox pour tester, mais cette procédure devrait fonctionner avec n'importe quelle version de Linux qui inclut VDO. Pour ce faire, j'ai :
- Installé le 
vdoetkmod-vdoforfaits : 
[root@defiant ~]# yum install vdo kmod-kvdo
 - J'ai créé un disque de 10 Go et l'ai associé à ma 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   - Création du 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
 - Création d'une partition GPT :
 
[root@defiant ~]# parted /dev/mapper/vdo-disk mklabel gpt mkpart p1 xfs 1MB 10TB
Information: You may need to update /etc/fstab.
 - Affiché les résultats :
 
[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 - A créé un système de fichiers et l'a monté :
 
[root@defiant ~]# mkdir /data
 - Formaté le disque (cette partie prendra probablement beaucoup de temps) :
 
[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 - Montez le disque :
 
[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 vous avez suivi, vous avez maintenant émulé un disque de 10 To. Notez que, avec les frais généraux, il n'affiche que 9,1 To, mais vous pouvez expérimenter avec des tailles pour obtenir la taille dont vous avez besoin. Évidemment, vous ne pouvez pas réellement stocker de grandes quantités de données sur ce disque, mais dans le but d'émuler logiquement un disque de 10 To, cette configuration m'a été utile.
Vous voulez essayer Red Hat Enterprise Linux ? Télécharge le maintenant gratuitement.