GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでVDOを使用して大容量ディスクをエミュレートする

少し前。ビッグデータプロジェクト用にディスクをパーティション分割してフォーマットするスクリプトを作成する必要がありました。ディスクサイズが十分に大きい場合は、GUIDパーティションテーブル(GPT)パーティションを使用する必要がありました。それ以外の場合は、マスターブートレコード(MBR)パーティションを使用します。問題は、このスクリプトをテストするための大きなディスクを備えたシステムにアクセスできなかったことです。

Red Hat Enterprise Linux(RHEL)7.5には、ディスク上の圧縮と重複排除を可能にするVirtual Disk Optimizer(VDO)と呼ばれる新機能が付属していたことを思い出しました。この新機能が私の状況に役立つかどうかを確認することにしました。 10GBなどの小さなディスクをOSから見て10TBのディスクのように見せることはできますか?

明らかに、10GBのディスクに実際に10TBを格納できる圧縮テクノロジーはありませんが、私の場合は、10TBのディスクを論理的にエミュレートする必要がありました。これでうまくいきますか?

見てみましょう。

この例では、VirtualBoxでRed Hat Enterprise Linux 8.1を使用してテストしていますが、この手順は、VDOを含むすべてのバージョンのLinuxで機能するはずです。これを達成するために、私は:

  1. vdoをインストールしました およびkmod-vdo パッケージ:
[root@defiant ~]# yum install vdo kmod-kvdo
  1. 10 GBのディスクを作成し、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. 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. GPTパーティションを作成しました:
[root@defiant ~]# parted /dev/mapper/vdo-disk mklabel gpt mkpart p1 xfs 1MB 10TB
Information: You may need to update /etc/fstab.
  1. 結果を表示しました:
[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. ファイルシステムを作成してマウントしました:
[root@defiant ~]# mkdir /data
  1. ディスクをフォーマットしました(この部分はおそらく長い時間がかかります):
[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. ディスクをマウントしました:
[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

従うと、10TBのディスクをエミュレートしたことになります。オーバーヘッドがある場合、表示されるのは9.1 TBのみですが、サイズを試して必要なサイズを取得できることに注意してください。もちろん、このディスクに実際に大量のデータを保存することはできませんが、10 TBのディスクを論理的にエミュレートするために、この設定は役に立ちました。

Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。


Linux
  1. LinuxDDコマンド-すべてのオプションを使用した15の例

  2. findおよびduコマンドを使用してLinuxで大きなファイルを検索する方法

  3. DiskPartでディスクを管理する

  1. Linuxでduを使用して使用済みディスク容量を確認する

  2. Linuxでディスクをパーティション分割する方法

  3. Linux で Windows スパン ディスク (LDM) を復元しますか?

  1. Linux –ディスク/ディスクのコピーを遅くしますか?

  2. Linuxクラウドサーバーでデータディスクを準備する

  3. Linux で物理ディスクの数を取得するには?