Před nějakým časem. Potřeboval jsem napsat skript, který by rozděloval a formátoval disky pro velký datový projekt. Pokud byla velikost disku dostatečně velká, potřeboval jsem použít oddíl GUID Partition Table (GPT), jinak použít oddíl Master Boot Record (MBR). Problém byl v tom, že jsem neměl přístup k systémům s velkými disky, abych mohl tento skript otestovat.
Vzpomněl jsem si, že Red Hat Enterprise Linux (RHEL) 7.5 byl dodáván s novou funkcí nazvanou Virtual Disk Optimizer (VDO), která umožňovala kompresi a deduplikaci na disku. Rozhodl jsem se zjistit, zda tato nová funkce pomůže mé situaci. Mohl bych vzít malý disk, řekněme 10 GB, a nastavit, aby OS vypadal jako 10TB disk?
Je zřejmé, že žádná kompresní technologie by mi neumožnila uložit 10 TB na 10 GB disk, ale v mém případě jsem potřeboval logicky emulovat 10 TB disk. Fungovalo by to?
Uvidíme.
Příklad
V tomto příkladu používám k testování Red Hat Enterprise Linux 8.1 pod VirtualBoxem, ale tento postup by měl fungovat s jakoukoli verzí Linuxu, která obsahuje VDO. Abych toho dosáhl, já:
- Nainstalovali jste
vdo
akmod-vdo
balíčky:
[root@defiant ~]# yum install vdo kmod-kvdo
- Vytvořil jsem 10GB disk a připojil jej k mému virtuálnímu počítači:
[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
- Vytvořil svazek 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
- Vytvořen oddíl GPT:
[root@defiant ~]# parted /dev/mapper/vdo-disk mklabel gpt mkpart p1 xfs 1MB 10TB
Information: You may need to update /etc/fstab.
- Zobrazil výsledky:
[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
- Vytvořil souborový systém a připojil jej:
[root@defiant ~]# mkdir /data
- Formátování disku (tato část bude pravděpodobně trvat dlouho):
[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
- Připojili jste disk:
[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
Pokud jste postupovali, nyní jste emulovali 10TB disk. Všimněte si, že s režií ukazuje pouze 9,1 TB, ale můžete experimentovat s velikostmi, abyste získali velikost, kterou potřebujete. Je zřejmé, že na tento disk ve skutečnosti nemůžete ukládat velké množství dat, ale pro účely logické emulace 10TB disku se mi toto nastavení hodilo.
Chcete vyzkoušet Red Hat Enterprise Linux? Stáhněte si ji nyní zdarma.