GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Emulieren großer Festplatten in Linux mit VDO

Vor einiger Zeit. Ich musste ein Skript schreiben, das Festplatten für ein Big-Data-Projekt partitioniert und formatiert. Wenn die Festplattengröße groß genug war, musste ich eine GUID-Partitionstabellenpartition (GPT) verwenden, andernfalls eine Master Boot Record-Partition (MBR). Das Problem war, dass ich keinen Zugriff auf Systeme mit großen Festplatten hatte, um dieses Skript zu testen.

Ich erinnerte mich, dass Red Hat Enterprise Linux (RHEL) 7.5 mit einer neuen Funktion namens Virtual Disk Optimizer (VDO) ausgeliefert wurde, die Komprimierung und Deduplizierung auf der Festplatte ermöglichte. Ich beschloss zu sehen, ob diese neue Funktion meiner Situation helfen würde. Könnte ich eine kleine Festplatte nehmen, sagen wir 10 GB, und sie für das Betriebssystem wie eine 10 TB-Festplatte aussehen lassen?

Offensichtlich würde mir keine Komprimierungstechnologie erlauben, tatsächlich 10 TB auf einer 10-GB-Festplatte zu speichern, aber in meinem Fall musste ich nur eine 10-TB-Festplatte logisch emulieren. Würde das funktionieren?

Mal sehen.

Beispiel

In diesem Beispiel verwende ich Red Hat Enterprise Linux 8.1 unter VirtualBox zum Testen, aber dieses Verfahren sollte mit jeder Version von Linux funktionieren, die VDO enthält. Um dies zu erreichen, mache ich:

  1. Das vdo installiert und kmod-vdo Pakete:
[root@defiant ~]# yum install vdo kmod-kvdo
  1. Eine 10-GB-Festplatte erstellt und an meine VM angehängt:
[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. Das VDO-Volume erstellt:
[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. Eine GPT-Partition erstellt:
[root@defiant ~]# parted /dev/mapper/vdo-disk mklabel gpt mkpart p1 xfs 1MB 10TB
Information: You may need to update /etc/fstab.
  1. Ergebnisse angezeigt:
[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. Ein Dateisystem erstellt und gemountet:
[root@defiant ~]# mkdir /data
  1. Festplatte formatiert (dieser Teil wird wahrscheinlich lange dauern):
[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. Festplatte gemountet:
[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

Wenn Sie mitgemacht haben, haben Sie jetzt eine 10-TB-Festplatte emuliert. Beachten Sie, dass mit Overhead nur 9,1 TB angezeigt werden, aber Sie können mit Größen experimentieren, um die gewünschte Größe zu erhalten. Natürlich können Sie auf dieser Festplatte keine großen Datenmengen speichern, aber für den Zweck der logischen Emulation einer 10-TB-Festplatte war dieses Setup für mich nützlich.

Möchten Sie Red Hat Enterprise Linux ausprobieren? Laden Sie es jetzt kostenlos herunter.


Linux
  1. Überprüfen Sie den belegten Speicherplatz unter Linux mit du

  2. So partitionieren Sie eine Festplatte unter Linux

  3. So finden Sie große Dateien unter Linux mit den Befehlen find und du

  4. Linux – Festplatte/Festplattenkopie langsamer machen?

  5. Verwalten Sie Datenträger mit DiskPart

So erstellen Sie Festplattenpartitionen mit Parted Command in Linux

So klonen Sie Festplatten mit dem Linux-Befehl dd

So zeigen Sie die Festplattennutzung mit Duf unter Linux und Unix an

Erstellen und verwalten Sie Festplattenpartitionen mit Parted in Linux

Parted Magic Disk Partitioning Live-CD Aktualisiert mit Linux 4.11.4, ZFS unter Linux

WSL2 kann jetzt Linux ext4-Festplatten direkt mounten