Linux ディスク パーティションの詳細な分析 | LVM 論理ボリューム | VDO ボリューム | AutoFS ストレージの自動マウント

Linux ディスク パーティションの詳細な分析 | LVM 論理ボリューム | VDO ボリューム | AutoFS ストレージの自動マウント

序文

  これらの手法とツールの使用方法は Linux ディストリビューションによって異なる場合があることに注意してください。詳細と手順については、使用している特定のディストリビューションのドキュメントとガイドを確認する必要があります。

1. オペレーティング システムのパーティション構成をインストールします。

/bootパーティション  を作成します(サイズ 50MB):
ここに画像の説明を挿入します
 
  /boot/efiパーティションを 200MB に設定し、
ここに画像の説明を挿入します
 
  Swapスワップ パーティションのサイズを物理メモリ サイズの 2 倍に設定します:
ここに画像の説明を挿入します
 
  残りのスペースはすべて/パーティション用に予約されます。もちろん、ルート パーティションを 50GB に設定することもできますまたは100GBにして、残りのスペースを分割し、/homeパーティションと/varパーティションを与えます
ここに画像の説明を挿入します

2. 大容量ディスクのパーティション管理

[root@localhost ~]# fdisk -l

Disk /dev/sda: 8393.0 GB, 8392996290560 bytes, 16392570880 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 1048576 bytes

  表示できる合計スペース/dev/sdaは約 8T で、パーティションのフォーマット操作は直接実行されます。

[root@localhost ~]# fdisk /dev/sda
[root@localhost ~]# mkfs.xfs /dev/sda1
[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  63G     0   63G   0% /dev
tmpfs                     63G     0   63G   0% /dev/shm
tmpfs                     63G   11M   63G   1% /run
tmpfs                     63G     0   63G   0% /sys/fs/cgroup
/dev/mapper/centos-root   50G  2.0G   49G   4% /
/dev/sdb2               1014M  151M  864M  15% /boot
/dev/sdb1                200M   12M  189M   6% /boot/efi
/dev/mapper/centos-home  838G   34M  838G   1% /home
tmpfs                     13G     0   13G   0% /run/user/0
/dev/sda1                2.0T   34M  2.0T   1% /data

  ディスク容量はわずか2Tです。その理由は、fdisk では最大 2T のパーティションしか作成できないためです。2T を超える場合は、parted を使用して
  fdisk で作成したディスク パーティションを削除します。

[root@localhost ~]# fdisk /dev/sda
Command (m for help): p
Command (m for help): d
Selected partition 1
Partition 1 is deleted

Command (m for help): w

  次に、parted ツールを使用してパーティションを作成します。

[root@localhost ~]# parted /dev/sda
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p                                                                
Model: BROADCOM MR9560-16i (scsi)
Disk /dev/sda: 8393GB		# 磁盘空间最大8393GB	
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags: 

Number  Start  End  Size  Type  File system  Flags

(parted) mklabel gpt                                                      
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? y                                                                 
(parted) mkpart                                                           
Partition name?  []? sda1                                                 
File system type?  [ext2]? ext4                                           
Start? 0                                                                  
End?                                                                      
End? 8393GB                                                               
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore                                                     
(parted) p                                                                
Model: BROADCOM MR9560-16i (scsi)
Disk /dev/sda: 8393GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      17.4kB  8393GB  8393GB               sda1

(parted) quit                                                             
Information: You may need to update /etc/fstab.
[root@localhost ~]# fdisk -l                                              
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sda: 8393.0 GB, 8392996290560 bytes, 16392570880 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 1048576 bytes
Disk label type: gpt
Disk identifier: E43B9D7C-0D7E-470D-8BBA-FC6A7238D6C3


#         Start          End    Size  Type            Name
 1           34  16392570846    7.6T  Microsoft basic sda1
[root@localhost ~]# mkfs.ext4 /dev/sda1
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sda1 /data
[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  63G     0   63G   0% /dev
tmpfs                     63G     0   63G   0% /dev/shm
tmpfs                     63G   11M   63G   1% /run
tmpfs                     63G     0   63G   0% /sys/fs/cgroup
/dev/mapper/centos-root   50G  2.0G   49G   4% /
/dev/sdb2               1014M  151M  864M  15% /boot
/dev/sdb1                200M   12M  189M   6% /boot/efi
/dev/mapper/centos-home  838G   34M  838G   1% /home
tmpfs                     13G     0   13G   0% /run/user/0
/dev/sda1                7.6T   93M  7.2T   1% /data

  ディスクの UUID を表示します。

blkid
/dev/mapper/centos-root: UUID="6daff923-488c-4dd8-80ee-fb5faed8cca9" TYPE="xfs" 
/dev/sdb3: UUID="JW1wdc-hst2-omzt-QegM-XS5a-tShf-OeUu1a" TYPE="LVM2_member" PARTUUID="6d3d61ff-6f12-4537-8abc-e59075d23291" 
/dev/sda1: UUID="bcde2c04-0944-4ec3-9d16-cdfbff7f38ea" TYPE="ext4" PARTLABEL="sda1" PARTUUID="1a4db326-aa94-4c44-99b5-21d96388334a" 
/dev/sdb1: SEC_TYPE="msdos" UUID="B09B-3EEA" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="6f8129b9-3eae-4234-98b8-7cde65820c0c" 
/dev/sdb2: UUID="dc45cf08-fdca-4c5c-9ef5-94396644c548" TYPE="xfs" PARTUUID="54c0bb37-f49e-4f87-aaa3-96201d717bb7" 
/dev/mapper/centos-swap: UUID="1ca6f4e8-c154-4ec0-9200-74bf2d7c8e87" TYPE="swap" 
/dev/mapper/centos-home: UUID="a8c37d6a-51e1-44ec-b506-29614f931ad1" TYPE="xfs" 
[root@localhost ~]# vim /etc/fstab
UUID=bcde2c04-0944-4ec3-9d16-cdfbff7f38ea /data xfs     defaults        0 0 

  ディスクの読み取りおよび書き込みパフォーマンスをテストします。

[root@localhost ~]# dumpe2fs /dev/sda1|grep -i "block Size"
dumpe2fs 1.42.9 (28-Dec-2013)
Block size:               4096

  書き込みパフォーマンスのテスト:

[root@localhost ~]# cd /data/
[root@localhost data]# time dd if=/dev/zero of=/testio bs=4k count=100000 oflag=direct oflag=sync
100000+0 records in
100000+0 records out
409600000 bytes (410 MB) copied, 9.6584 s, 42.4 MB/s
real	0m9.732s
user	0m0.103s
sys	0m4.798s


[root@localhost data]# dd if=/dev/zero of=/testio2 bs=4k count=100000 oflag=direct
100000+0 records in
100000+0 records out
409600000 bytes (410 MB) copied, 3.71845 s, 110 MB/s

# 添加oflag=direct将跳过内存缓存,添加oflag=sync将跳过hdd缓存

  テスト読み取りパフォーマンス:

[root@localhost data]# time dd if=/dev/sda1 of=/dev/null bs=4k
^C4775424+0 records in
4775423+0 records out
19560132608 bytes (20 GB) copied, 12.6906 s, 1.5 GB/s

real	0m12.693s
user	0m0.804s
sys	0m10.713s

3. LVM論理ボリューム管理

ここに画像の説明を挿入します
  LVM (Logical Volume Manager) は、Linux システムでハードディスクのパーティションを管理するためのメカニズムで、ディスクとパーティションの上に論理層を構築して、ディスク パーティションを柔軟かつ効率的に管理し、ディスク管理操作を簡素化します。論理ボリュームのサイズは、既存のデータを失うことなく動的に調整でき、新しいディスクが追加された場合でも、既存の論理ボリュームは変更されません。

3.1. LVM 論理ボリュームの作成

ここに画像の説明を挿入します

3.1.1. 物理ボリュームPVの作成

yum install -y lvm2

  ホスト上のすべてのハード ドライブを表示します。

lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   2.2T  0 disk 
sdb      8:16   0 893.1G  0 disk 
├─sdb1   8:17   0   190M  0 part /boot/efi
├─sdb2   8:18   0   976M  0 part /boot
├─sdb3   8:19   0   128G  0 part [SWAP]
└─sdb4   8:20   0   764G  0 part /
sdc      8:32   0   1.1T  0 disk 
sdd      8:48   0   1.1T  0 disk 
sde      8:64   0   2.2T  0 disk 

  sda と sde を使用して物理ボリュームを作成し、複数のデバイスをスペースで区切ることを選択します。

pvcreate /dev/sda /dev/sde

3.1.2. ボリュームグループ VG の作成

vgcreate <卷组名称> <物理卷名称> …… <物理卷名称>

  たとえば、vg_01 ボリューム グループを作成し、2 つの物理ボリューム /dev/sda および /dev/sde を追加します。

vgcreate vg_01 /dev/sda /dev/sde

  新しい物理ボリュームをボリューム グループに追加する必要がある場合は、次のコマンドを実行して、作成された他の物理ボリュームを追加します。

vgextend <卷组名称> <物理卷名称> …… <物理卷名称>

  ボリューム グループ情報を表示します。

vgs
  VG    #PV #LV #SN Attr   VSize VFree
  vg_01   2   0   0 wz--n- 4.36t 4.36t

3.1.3. 論理ボリュームLVの作成

  論理ボリュームを作成します。

lvcreate -L <逻辑卷大小> -n <逻辑卷名称> <卷组名称>

# 逻辑卷大小:逻辑卷的大小应小于卷组剩余可用空间。
# 逻辑卷名称:由您自定义,例如lv01。
# 卷组名称:创建卷组已经创建的卷组的名称,例如vg_01
lvcreate -L 10g -n lv01 vg_01

3.1.4. ファイルシステムの作成とマウント

  論理ボリュームのパス、名前、所属するボリューム グループなどの情報を取得します。これは後続の手順で使用する必要があります。

lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_01/lv01
  LV Name                lv01
  VG Name                vg_01
  LV UUID                4fx5f3-BA2H-yCcE-2mys-p0FW-umQS-0ur97v
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2023-07-13 23:25:53 -0400
  LV Status              available
  # open                 0
  LV Size                10.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

# LV Path:逻辑卷路径,例如/dev/vg_01/lv01
# LV Name:逻辑卷的名称,例如lv01
# VG Name:逻辑卷所属的卷组名称,例如vg_01
# LV Size:逻辑卷的大小,图示信息为10 GiB

  論理ボリューム上にファイル システムを作成します。

mkfs.<文件系统格式> <逻辑卷路径>

  フォーマットする例として、論理ボリューム パスを /dev/vg_01/lv01、ファイル システムを ext4 とします。

mkfs.ext4 /dev/vg_01/lv01

  /media/lv01 などの新しいマウント ポイントを作成し、ファイル システムをそのマウント ポイントにマウントします。

mkdir /media/lv01
mount /dev/vg_01/lv01 /media/lv01

  論理ボリュームのマウント結果を確認します。

df -h
Filesystem              Size  Used Avail Use% Mounted on
......
/dev/mapper/vg_01-lv01  9.8G   37M  9.2G   1% /media/lv01

3.1.5. 起動時の自動マウントの設定

  起動時に論理ボリュームが自動的にマウントされるように設定する必要がある場合は、システムの電源投入および再起動時に論理ボリュームが自動的にマウントされるように、/etc/fstab に論理ボリュームのマウント情報を追加する必要があります。
次のコマンドを実行して etc/fstab ファイルをバックアップします。

cp /etc/fstab  /etc/fstab.bak

  ターゲット論理ボリュームのマウント情報を /etc/fstab ファイルに追加します。

echo `blkid <逻辑卷路径> | awk '{print $2}' | sed 's/\"//g'` <逻辑卷挂载点> <逻辑卷的文件系统类型> defaults 0 0 >> /etc/fstab

  論理ボリューム (パスは /dev/vg_01/lv01) は、コンピュータの電源を入れて再起動すると、/media/lv01 ディレクトリに自動的にマウントされます。ファイル システムの種類は ext4 です。

echo `blkid /dev/vg_01/lv01 | awk '{print $2}' | sed 's/\"//g'` /media/lv01 ext4 defaults 0 0 >> /etc/fstab

  論理ボリュームのマウント情報が正常に追加されたかどうかを確認します。

cat /etc/fstab
......
UUID=2b1a3a54-2ab8-48f4-a321-3d5bfed63482 /media/lv01 ext4 defaults 0 0

  自動マウント機能が有効であることを確認し
  、/etc/fstabに設定されているファイルシステムを再マウントしてください。エラー出力がない場合は、論理ボリュームが指定されたマウント ポイントに正常にマウントされたことを意味します。

mount -a

3.2. 論理ボリュームの拡張と縮小

  論理ボリュームを拡張します。
  LVM (Logical Volume Manager) を通じて論理ボリューム LV (Logical Volume) を拡張し、
  他の物理ディスクを使用して物理ボリュームを作成します。

pvcreate <云盘设备名称>
pvcreate /dev/sdc

  ボリューム グループ情報を確認し、次のコマンドを実行してボリューム グループを拡張します。

vgs
  VG    #PV #LV #SN Attr   VSize VFree
  vg_01   2   1   0 wz--n- 4.36t 4.35t
vgextend <卷组名称> <物理卷名称>

  物理ボリューム /dev/sdc をボリューム グループ vg_01 に追加します。

vgextend vg_01 /dev/sdc

  ボリューム グループ情報を表示します。

vgs
  VG    #PV #LV #SN Attr   VSize VFree
  vg_01   3   1   0 wz--n- 5.45t 5.44t

  論理ボリュームとファイル システムを拡張する:
  論理ボリュームのパス、名前、所属するボリューム グループなどの情報を取得します。これは後続の手順で使用する必要があります。

lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_01/lv01
  LV Name                lv01
  VG Name                vg_01
  LV UUID                4fx5f3-BA2H-yCcE-2mys-p0FW-umQS-0ur97v
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2023-07-13 23:25:53 -0400
  LV Status              available
  # open                 1
  LV Size                10.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  論理ボリュームを拡張します。

lvextend -L </减逻辑卷容量> <逻辑卷路径>

  論理ボリュームに 5GiB の容量を追加します (パスは /dev/vg_01/lv01)。

lvextend -L +5G /dev/vg_01/lv01

或者:
lvextend -L 15G /dev/vg_01/lv01

  論理ボリューム ファイル システムを拡張します。

resize2fs <逻辑卷路径>

  例として、論理ボリューム lv01 (パスは /dev/vg_01/lv01) の拡張を考えます。

resize2fs /dev/vg_01/lv01
df -h
Filesystem              Size  Used Avail Use% Mounted on
......
/dev/mapper/vg_01-lv01   15G   41M   14G   1% /media/lv01

  論理ボリュームを縮小します。
  最初に論理ボリュームをアンマウントします/dev/mapper/vg_01-lv01

umount /media/lv01
umount: /media/lv01: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
fuser -m /media/lv01
/media/lv01:          9141c

ps -ef | grep 9141
root      9141  9137  0 Jul13 pts/2    00:00:00 -bash
root     39546 39449  0 02:18 pts/0    00:00:00 grep --color=auto 9141

kill -9 9141
umount /media/lv01

  e2fsck コマンドを使用して、論理ボリュームの空きスペースを確認します。

e2fsck -f /dev/mapper/vg_01-lv01
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg_01-lv01: 12/983040 files (0.0% non-contiguous), 104724/3932160 blocks

  size2fs を使用してファイルシステムを 3G に縮小します

resize2fs /dev/mapper/vg_01-lv01 3G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/vg_01-lv01 to 786432 (4k) blocks.
The filesystem on /dev/mapper/vg_01-lv01 is now 786432 blocks long.

  lvreduce コマンドを使用して、論理ボリュームを 3G に削減します。

lvreduce -L 3G /dev/mapper/vg_01-lv01
  WARNING: Reducing active logical volume to 3.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg_01/lv01? [y/n]: y
  Size of logical volume vg_01/lv01 changed from 15.00 GiB (3840 extents) to 3.00 GiB (768 extents).
  Logical volume vg_01/lv01 successfully resized.
mount -a
df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vg_01-lv01  2.9G   25M  2.7G   1% /media/lv01

3.3. ボリュームグループの縮小

  まず、削除する物理ボリュームを決定し、この物理ボリューム上のデータを他の物理ボリュームに転送してから、この物理ボリュームをボリューム グループから削除します。

pvmove /dev/sdc
  No data to move for vg_01.

  pvmove コマンドが完了したら、再度 pvs コマンドを使用して物理ボリュームが空いているかどうかを確認します。

pvs -o+pv_used
  PV         VG    Fmt  Attr PSize PFree  Used 
  /dev/sda   vg_01 lvm2 a--  2.18t <2.18t 3.00g
  /dev/sdc         lvm2 ---  1.09t  1.09t    0 
  /dev/sde   vg_01 lvm2 a--  2.18t  2.18t    0 

  空いている場合は、vgreduce コマンドを使用して、物理ボリューム /dev/sdc をボリューム グループから削除します。

vgreduce vg_01 /dev/sdc
  Removed "/dev/sdc" from volume group "vg_01"

  最後に、pvremove コマンドを実行して、LVM 構成からディスクを削除します。

pvremove /dev/sdc
  Labels on physical volume "/dev/sdc" successfully wiped.

3.4. 論理ボリューム、ボリュームグループ、物理ボリュームの削除

umount /media/lv01 
lvremove /dev/mapper/vg_01-lv01
Do you really want to remove active logical volume vg_01/lv01? [y/n]: y
  Logical volume "lv01" successfully removed

vgremove vg_01
  Volume group "vg_01" successfully removed

lvs # 执行结果为空
vgs	# 执行结果为空
pvs
  PV         VG Fmt  Attr PSize PFree
  /dev/sda      lvm2 ---  2.18t 2.18t
  /dev/sde      lvm2 ---  2.18t 2.18t

pvremove /dev/sda
  Labels on physical volume "/dev/sda" successfully wiped.
pvremove /dev/sde
  Labels on physical volume "/dev/sde" successfully wiped.

4. VDO (仮想データ最適化) ボリューム管理

4.1. VDO の概要

  VDO (Virtual Data Optimize) は、RHEL8/Centos8 で新たに導入されたストレージ関連テクノロジ (7.5 ベータ版で最初にテスト) で、Redhat が買収した Permabit のテクノロジです。
  VDO の主な機能はディスク領域を節約することです。たとえば、1T ディスクには 1.5T のデータを保存できるため、データセンターのコストが削減されます。
  VDO の主要な実装原則は主に重複排除と圧縮です。重複排除とは、同じデータをハードディスクにコピーすることを意味します。以前は複数のスペースのコピーを占有していましたが、現在は 1 つのスペースのコピーのみが必要です。大規模なソフトウェア インストール パッケージを Baidu Netdisk にアップロードするのと同様に、即座に転送できます。実際、履歴記録はすでに存在しているため、同じファイルを再度アップロードする必要はなく、Baidu のスペースを占有する必要もありません。 。一方、データ圧縮は圧縮ソフトウェアのアルゴリズムに似ており、より多くのディスク領域を節約できます。
  VDO (Virtual Data Optimizer) は、ローカル ファイル システム、iSCSI または Ceph ストレージの下に追加のストレージ レイヤーとして使用できるストレージ ソフトウェアです。VDO は、重複排除、圧縮、シン プロビジョニングの形式で Linux にインライン データ削減を提供します。VDO ボリュームを設定する場合、VDO ボリュームを構築するブロック デバイスを指定し、論理ストレージの量を設定できます。
  ● 仮想マシンまたはコンテナに使用する場合は、論理ストレージと物理ストレージの比率が 10:1 になるようにストレージを構成することをお勧めします。つまり、1 TB の物理ストレージが使用されている場合、10 TB の論理ストレージとして表示されます。
  ● Ceph が提供するタイプなどのオブジェクト ストレージの場合は、論理対物理の比率を 3:1 にすることをお勧めします。1 TB の物理ストレージは 3 TB の論理ストレージとして表示されます。どちらの場合も、ファイル システム
  をVDO は論理デバイス上に提供され、それを直接使用するか、分散クラウド ストレージ アーキテクチャの一部として使用します。
  VDO は迅速にプロビジョニングされるため、ファイル システムとアプリケーションは使用中の論理スペースのみを認識し、実際に使用可能な物理スペースを認識しません。スクリプトを使用して実際の空き領域を監視し、使用量がしきい値を超えた場合 (たとえば、VDO ボリュームが 80% 使用されている場合) にアラートを生成します。

  VDO 導入シナリオ:
  KVM:
  VDO は、直接接続ストレージが構成された KVM サーバーに展開できます。
ここに画像の説明を挿入します

  ファイルシステム:
  ファイル システムは VDO 上に作成でき、NFS サーバーまたは Samba 経由で NFS または CIFS ユーザーに公開できます。
ここに画像の説明を挿入します
  VDO を iSCSI に配置します。
  VDO ストレージ ターゲット全体を iSCSI ターゲットとしてリモート iSCSI イニシエータにエクスポートできます
ここに画像の説明を挿入します
  。iSCSI 上に VDO ボリュームを作成する場合、VDO ボリュームを iSCSI 層の上または下に配置できます。
  iSCSI レイヤーの下の iSCSI サーバー (ターゲット) に VDO ボリュームを配置する場合:
  ● VDO ボリュームは、他の iSCSI LUN と同様に、イニシエータに対して透過的です。シン プロビジョニングとスペースの節約をクライアントから隠すことで、LUN の監視と保守が容易になります。
  ● VDO メタデータの読み取りまたは書き込みが行われず、ネットワーク上で重複排除の推奨事項の読み取り検証が行われないため、ネットワーク トラフィックが削減されます。
  ● iSCSI ターゲットでメモリと CPU リソースを使用すると、パフォーマンスが向上する可能性があります。たとえば、iSCSI ターゲットでボリュームが削減されると、より多くのハイパーバイザーをホストできるようになります。
  ● クライアントがイニシエータに暗号化を実装し、ターゲットの下に VDO ボリュームがある場合、スペースの節約は実現されません。

  VDO ボリュームを iSCSI 層の上の iSCSI クライアント (イニシエーター) に配置する場合:
  ● スペースを大幅に節約する場合、非同期モードのネットワーク トラフィックが削減される可能性があります。
  ● スペースの節約と使用状況の監視を直接表示して制御できます。
  ● たとえば を使用してデータを暗号化する場合はdm-crypt、暗号化に加えて VDO を実装し、スペース効率を最大限に活用できます。

  LVM:
  以下の図では、LVM で管理できるように VDO ターゲットを物理ボリュームとして登録しています。重複排除されたストレージプールから複数の論理ボリューム (LV1 ~ LV4) を作成します。これにより、VDO は基盤となる重複排除ストレージ プールへのマルチプロトコルの統合ブロックまたはファイル アクセスをサポートできるようになります。
ここに画像の説明を挿入します

4.2. VDO のデプロイ

  VDO ソフトウェアをインストールします。

yum install lvm2 kmod-kvdo vdo

  VDO ボリュームの作成:
  次に、ブロック デバイスに VDO ボリュームを作成します。次の手順では、vdo-nameVDO ボリュームに使用する識別子 (例: ) に置き換えますvdo1システム内の各 VDO インスタンスには、異なる名前とデバイスを使用する必要があります。非永続的なデバイス名を使用すると、将来デバイス名が変更された場合に VDO が正しく起動しなくなる可能性があります。

vdo create \
--name=vdo-name \
--device=block-device \
--vdoLogicalSize=logical-size

# --name后面跟vdo卷的名称,随便写,好认即可
# --device后面跟真实的物理磁盘
# --vdoLogicalSize后面跟vdo卷的容量,这里按真实物理空间的1.5
vdo create \
--name=vdo-name \
--device=/dev/sdc \
--vdoLogicalSize=50G

Creating VDO vdo-name
Starting VDO vdo-name
Starting compression on VDO vdo-name
VDO instance 0 volume is ready at /dev/mapper/vdo-name

物理ブロック デバイスが 16TiB より大きい場合は、 --vdoSlabSize=32G オプションを追加して、ボリューム上のスラブ サイズを 32GiB に増やします。

mkfs.xfs /dev/mapper/vdo-name 

  VDO をマウントする:

mount /dev/mapper/vdo-name /vodvolume/

  定期的なブロック破棄を有効にする:タイマーを有効にして、サポートされているすべてのファイル システムで未使用のブロックを定期的に破棄
  できます。タイマーを   有効にして開始します。systemd
systemd

systemctl enable --now fstrim.timer

  タイマーのステータスを確認します。

systemctl status fstrim.timer
● fstrim.timer - Discard unused blocks once a week
   Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; enabled; vendor preset: disabled)
   Active: active (waiting) since Fri 2023-07-14 04:33:38 EDT; 5s ago
     Docs: man:fstrim

Jul 14 04:33:38 localhost.localdomain systemd[1]: Started Discard unused blocks once a week.

  VDO の監視:
ツール   を使用してvdostatsVDO ボリュームに関する情報を取得します。

vdostats --human-readable
Device                    Size      Used Available Use% Space saving%
/dev/mapper/vdo-name      1.1T      5.4G      1.1T   0%           99%

  vdostats は、実際の物理スペースのサイズと残りのスペースを確認するために使用されます。

4.3. VDOのメンテナンス

4.3.1. VDO ボリュームの空き領域の管理

4.3.2. VDO ボリュームの起動または停止

  システムの起動プロセス中に、vdoVDOsystemdユニットはアクティベーション用に構成されたすべての VDO デバイスを自動的に起動します。vdoパッケージをインストールすると、ユニットがインストールされ、デフォルトで有効になりますvdo systemdこのユニットは、システム起動時に、vdo start --allアクティブ化されたすべての VDO ボリュームを起動するコマンドを自動的に実行します。コマンドにオプションを追加することで、自動的に起動しない VDO ボリュームを作成する
  こともできます。vdo create--activate=disabled

  ブートシーケンス:
  一部のシステムでは、LVM ボリュームが VDO ボリュームの上または下に配置される場合があります。これらのシステムでは、サービスを正しい順序で開始する必要があります。
  ● LVM の下位層を最初に開始する必要があります。ほとんどのシステムでは、LVM パッケージがインストールされると、この層が自動的に開始されます。
  ● その後、ユニットをvdo systemd起動する必要があります。
  ● 最後に、実行中の VDO ボリューム上で LVM ボリュームまたはその他のサービスを開始するには、追加のスクリプトを実行する必要があります。

  ボリュームの停止に必要な時間: VDO ボリュームの停止に必要な時間は、
  ストレージ デバイスの速度と、ボリュームに書き込む必要があるデータの量によって異なります。 ● ボリュームは常に、
  1GiB の UDS インデックスごとに約 1GiB を書き込みます。
  ● このボリュームには、ブロック マップ キャッシュ サイズにスラブあたり最大 8MiB を加えた量のデータも書き込みます。
  ● ボリュームは、すべての未処理の IO リクエストの処理を完了する必要があります。

  特定の VDO ボリュームを開始するには、次を使用します。

vdo start --name=vdo-name
Starting VDO vdo-name
VDO instance 0 volume is ready at /dev/mapper/vdo-name

  すべての VDO ボリュームを開始するには、次を使用します。

vdo start --all

  VDO ボリュームをアクティブにする (VDO ボリュームをアクティブにして、自動的に起動するようにします):
  特定のボリュームをアクティブにします:

vdo activate --name=vdo-name
vdo-name already activated

  すべてのボリュームをアクティブ化します。

vdo activate --all
vdo-name already activated

  特定のボリュームを非アクティブ化します。

vdo deactivate --name=vdo-name

  すべてのボリュームを非アクティブ化します。

vdo deactivate --all

4.3.3. VDO書き込みモードの選択

  同期モード:
  VDO が同期モードの場合、上位層は書き込みコマンドが永続ストレージにデータを書き込むと考えます。その結果、ファイル システムまたはアプリケーションは、データを保持するために FLUSH または強制ユニット アクセス (FUA) リクエストを発行するなど、重大な障害ポイントでのデータ保持に対処する必要がなくなります (つまり、キャッシュをフラッシュする必要がなくなります)。キャッシュから永続ストレージにデータを書き込みます。上位層は、書き込みコマンドがキャッシュではなく永続ストレージに直接書き込まれると考えます)。基礎となるストレージが、書き込みコマンドの完了時にデータが永続ストレージに書き込まれることを保証できる場合、VDO を同期モードに設定する必要があります。つまり、ストレージ デバイスには揮発性書き込みキャッシュがないか、ライトスルー キャッシュがあります。
  非同期モード:
  VDO が非同期モードの場合、VDO は、書き込みコマンドの完了時にデータが永続ストレージに書き込まれることを保証しません。ファイル システムまたはアプリケーションは、重大な障害が発生した場合でもデータが確実に保持されるように、対話のたびに FLUSH または FUA リクエストをトリガーする必要があります。コマンドの完了時に基盤となるストレージがデータの永続性を保証できない場合は、VDO を非同期モードに設定する必要があります。つまり、ストレージデバイスは揮発性書き込みキャッシュを備えています。
  自動モード:
  自動モードは、デバイスのプロパティに従って同期モードまたは非同期モードを自動的に選択します。

  VDO書き込みモードの内部処理:
  kvdo カーネル モジュールが同期モードで実行される場合:
  ● まず、要求されたデータを割り当てられたブロックに一時的に書き込み、次に要求を確認します。
  ● 確認が完了すると、ブロック データのハッシュ署名を計算してブロックの重複排除が試行され、VDO インデックスに送信されます。
  ● VDO インデックスに同じ署名を持つブロックが含まれている場合、kvdo は見つかったブロックを読み取り、2 つのブロックをバイトごとに比較して、それらが同一であることを確認します。
  ● それらが実際に同じである場合、kvdo は論理ブロックが対応する物理ブロックを指すようにブロック マップを更新し、割り当てられた一時物理ブロックを解放します ● VDO インデックスに書き込まれるブロックの署名が含まれていない場合
  、または、指定されたブロックに実際には同じデータが含まれていない場合、kvdo はそのブロック マップを更新して、一時的な物理ブロックを永続的なものにします。
  kvdo カーネル モジュールが非同期モードで実行されている場合:
  ● データを書き込むのではなく、ただちにリクエストを承認します。
  ● 次に、上記と同じ方法でデータ ブロックのチェックを試みます
  。 ● ブロックが重複ブロックであることが判明した場合、 kvdo マッピングを更新し、割り当てられたブロックを解放します。それ以外の場合は、リクエストからのデータを割り当てられたブロックに書き込み、ブロック マップを更新して物理ブロックを永続的にします。

  VDO ボリュームで使用される書き込みモードを表示します。

vdo status --name=vdo-name | grep "write policy"
    Configured write policy: auto
        write policy: sync

# 配置的写入策略: 会有sync、async或auto选项
# 写入策略:是VDO应用的特定的写模式,即sync或async

  揮発性キャッシュの確認:
ファイル   を参照して/sys/block/block-device/device/scsi_disk/identifier/cache_type揮発性キャッシュを確認できます。

cat /sys/block/sda/device/scsi_disk/7:0:0:0/cache_type
write back
cat /sys/block/sdb/device/scsi_disk/1:2:0:0/cache_type
None
cat /sys/block/sdc/device/scsi_disk/0\:3\:109\:0/cache_type 
write through

  ● デバイスはsdaライトバック キャッシュがあることを示します。使用asyncパターン
  ● デバイスはsdbライトバック キャッシュを持たないことを示しています。その使用syncパターン

Cache_type の値が None またはライトスルーの場合、VDO は同期書き込みモードを使用するように構成する必要があります。

  VDO 書き込みモードの設定:
  既存のボリュームまたは新しいボリュームの作成時に、VDO ボリュームの書き込みモードを設定します。

不適切な書き込みモードを使用すると、停電、システムのクラッシュ、またはディスクとの予期しない接続喪失の後にデータが失われる可能性があります。

  既存の VDO ボリュームを変更するには、以下を使用します。

vdo changeWritePolicy --writePolicy=sync|async|async-unsafe|auto \
                        --name=vdo-name

  VDO ボリュームの作成時に書き込みモードを指定するには、vdo createコマンドに--writePolicy=sync|async|async-unsafe|auto オプションを追加します。

4.3.4. VDO ボリュームのリカバリと再構築

  VDO ボリュームのリカバリ:
  VDO ボリュームの再構築操作は、手動介入なしで自動的に完了します。VDO は、現在の書き込みモードに従って、さまざまな書き込みルールを再構築します。異常なシャットダウン後に VDO ボリュームが起動されると、VDO はボリューム上のメタデータを検証します。整合性、修復が必要な場合はメタデータの一部を再構築します。

  sync:
VDO が同期ストレージ上で実行されており、書き込みポリシーが に設定されている場合sync、ボリュームに書き込まれたすべてのデータを完全にリカバリできます。
  async:
  書き込みポリシーがasync「はい」の場合、一部の書き込みは永続的でない場合、回復されない可能性があります。VDO FLUSHこれは、FUA (Forced Unit Access) フラグを使用してコマンドまたは書き込み I/O を送信することによって実現できます。fsyncこれは、fdatasyncsync、 などumount のデータ整合性操作を呼び出すことによってユーザー モードで実現できます

どちらのモードでも、一部の未承認またはフラッシュされていない書き込みも再構築される可能性があります。

  自動および手動リカバリ:
  VDO ボリュームがリカバリ操作モードに入ると、VDO はオンラインに戻った後、クリーンでない VDO ボリュームを自動的に再構築します。これをオンラインリカバリと呼びます。
  VDO が VDO ボリュームを正常に回復できない場合、ボリュームは読み取り専用動作モードになり、ボリュームが再起動されてもそのモードが有効になります。この問題を手動で解決するには、再構築を強制する必要があります。

  VDO 動作モード:
  次の方法を使用して、VDO ボリュームが正常に動作しているか、エラーから回復しているかを確認できます。

vdostats --verbose vdo-name | grep mode
  operating mode                      : normal

  通常:
  これはデフォルトの動作モードです。VDO ボリュームは、normal次の状態のいずれかによって別のモードが強制されない限り、常にモードになります。新しく作成された VDO ボリュームはnormalモードで開始されます。
  回復中: VDO ボリュームがシャットダウンする前にすべてのメタデータを保存しなかった場合、次回起動時に
  自動的にモードに入ります。recoveringこのモードに入る一般的な理由は、電源の喪失または基盤となるストレージ デバイスの問題です。
  モードではrecovering、VDO はデバイス上の各物理ブロックへの参照の数を修復します。通常、回復にはそれほど長い時間はかかりません。時間は、VDO ボリュームのサイズ、基礎となるストレージ デバイスの速度、および VDO への他のリクエストを同時に処理できる速度によって異なります。VDO ボリュームには通常、次の例外があります。
  ● 最初は、ボリュームへの書き込みに要求されるスペースの量が制限されている場合があります。より多くのメタデータが復元されると、より多くの空き領域が利用可能になります。
  ● データがボリュームのまだリカバリされていない部分にある場合、VDO ボリュームのリカバリ中のデータの書き込みでは、クラッシュ前に書き込まれたデータの重複が排除されない可能性があります。VDO は、ボリュームを復元するときにデータを圧縮します。圧縮されたブロックの読み取りまたは上書きは引き続き可能です。
  ● オンラインリカバリ中は、使用中のブロックや空きブロックなどの一部の統計は利用できません。これらの統計は、再構築の完了後に利用可能になります。
  ● 継続的な回復作業により、読み取りおよび書き込みの応答時間が通常より遅くなる場合がありますが、 VDO ボリュームはモードで安全にシャットダウンでき
  ます。recoveringシャットダウンする前に回復が完了していない場合、デバイスは次回電源を入れたときに再び回復モードに入ります。
  VDO ボリュームがすべての参照を修復すると、VDO ボリュームは自動的にrecoveringモードを終了し、normalモードに入ります。管理者のアクションは必要ありません。

  VDO ボリュームをオンラインで復元する:
  次のコマンドを使用して、VDO ボリュームをオンラインで復元できます。

vdo start --name=vdo-name

  追加の手順は必要ありません。バックグラウンドでの実行を再開する

  VDO ボリュームのメタデータを強制的にオフラインで再構築する:
  異常なシャットダウン後の回復を容易にするために、VDO ボリュームのメタデータを強制的にオフラインで再構築します。前提条件として、VDO ボリュームが起動している必要があります。

このプロセスにより、ボリュームのデータが失われる可能性があります

  ボリュームが読み取り専用モードかどうかを確認します。

vdo status --name=vdo-name | grep mode
        operating mode: normal

  ボリュームが読み取り専用モードでない場合は、オフラインでの再構築を強制する必要はありません。オンラインリカバリの実行
  ボリュームが実行中の場合は、停止します。

vdo stop --name=vdo-name

  次のオプションを使用してボリュームを再起動します--forceRebuild

vdo start --name=vdo-name --forceRebuild

  失敗した VDO ボリュームの削除:
  このプロセスは、中間状態にある VDO ボリュームをクリーンアップします。ボリュームの作成中に障害が発生した場合、ボリュームは中間状態になります。これは、たとえば次のような状況で発生する可能性があります。
  ● システムのクラッシュ
  ● 電源障害
  ● 管理者が実行中のvdo createコマンドを中断した場合

  クリーンアップするには、--force作成に失敗したボリュームを削除するオプションを使用します。

vdo remove --force --name=vdo-name

  必須--forceオプション。ボリュームの作成が失敗すると、管理者がシステム構成の変更により競合を引き起こす可能性があります。--forceオプションがないとvdo removeコマンドは失敗します

4.3.5. VDO での圧縮の有効化または無効化

  VDO はデータ圧縮を提供します。これを有効にすると、スペースが節約されます。VDO ボリューム圧縮は、on
  VDO が最初にデータを認識したときに、デフォルトで一意のデータに設定されます。保存されたデータの後続のコピーは、追加の圧縮手順なしで複製されます。
  VDO ボリュームで圧縮を有効にします (圧縮はデフォルトで有効です)。

vdo enableCompression --name=vdo-name

  VDO ボリュームの圧縮を無効にする:
  既存の VDO ボリュームの圧縮を停止するには、次のコマンドを使用します。

vdo disableCompression --name=vdo-name

  また、新しいボリュームを作成するときに、圧縮を無効にするオプションをコマンドにvdo create追加できます。--compression=disabled

4.3.6. VDO ボリュームのサイズを増やす

  VDO ボリュームの物理サイズを大きくして、基礎となるストレージ容量をより多く利用したり、論理サイズを大きくしてボリューム上の容量を増やすことができます。

  物理サイズ:
  基礎となるブロックデバイスのサイズ。VDO は、このストレージを次の目的で使用します。
  ● ユーザー データ (重複排除および圧縮される可能性がある)
  ● VDO メタデータ (UDS インデックスなど)
  利用可能な物理サイズ:
  これは、VDO がユーザー データに使用できる物理サイズの一部です。
  物理サイズに等しいです。メタデータのサイズを計算し、指定されたスラブ サイズに基づいてボリュームをスラブに分割した後に残った値を減算します。
  論理サイズ:
  これは、アプリケーション内の VDO ボリュームのプロビジョニングされたサイズです。通常、利用可能な物理サイズよりも大きくなります。オプションが指定されていない場合、論理ボリュームのプロビジョニングは の比率--vdoLogicalSizeで構成されます。1:1たとえば、VDO ボリュームを 20 GB のブロック デバイスに配置する場合、UDS インデックス用に 2.5 GB を予約します (デフォルトのインデックス サイズを使用する場合)。残りの 17.5 GB は、VDO メタデータとユーザー データ用に提供されます。したがって、使用可能なストレージは 17.5 GB を超えて消費されず、実際の VDO ボリュームを構成するメタデータによって減少する可能性があります。

VDO は現在、物理ボリュームの 254 倍までの論理ボリューム サイズをサポートしていますが、4PB 以下です。

  VDO ディスク構造:
ここに画像の説明を挿入します
  VDO ボリュームの論理ボリューム サイズを増やす:
  このプロセスでは、特定の VDO ボリュームの論理サイズを増やします。まず、スペース不足にならない程度に小さい論理サイズの VDO ボリュームを作成します。時間の経過とともに、実際のデータ削減率を評価し、十分であれば VDO ボリュームの論理サイズを増やして、スペースの節約を活用できます。

VDO ボリュームの論理ボリューム サイズを減らすことはできません

  論理サイズを増やすには、次を使用します。

# 原VDO卷大小

lsblk
NAME       MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdc          8:32   0   1.1T  0 disk 
└─vdo-name 253:0    0    50G  0 vdo  /vodvolume
vdo growLogical --name=vdo-name \
                  --vdoLogicalSize=100G
lsblk
NAME       MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdc          8:32   0   1.1T  0 disk 
└─vdo-name 253:0    0   100G  0 vdo  /vodvolume

  VDO ボリュームの物理サイズを増やす:
  VDO ボリュームが使用できる物理ストレージの量を増やすことができますが、この方法で VDO ボリュームが使用する物理ストレージの量を減らすことはできません。まず、基礎となるブロック デバイスの容量が VDO ボリュームの現在の物理サイズより大きくなければなりません。
  新しい物理ストレージ スペースを VDO ボリュームに追加します。

vdo growPhysical --name=my-vdo

4.3.7. VDO ボリュームの削除

  有効な VDO ボリュームを削除するには:
  ● ファイル システムをアンマウントし、VDO ボリューム内のストレージを使用しているアプリケーションを停止します。
  ● システムから VDO ボリュームを削除するには、次のコマンドを使用します。

vdo remove --name=vdo-name

  作成に失敗した VDO ボリュームを削除する:
  中間状態にある VDO ボリュームをクリーンアップします。ボリュームの作成中に障害が発生した場合、ボリュームは中間状態になります。これは、たとえば次のような状況で発生する可能性があります。
  ● システム クラッシュ
  ● 電源障害
  ● 管理者が実行中のvdo createコマンドを中断
  クリーンアップするには、--force作成に失敗したボリュームを削除するオプションを使用します。

vdo remove --force --name=vdo-name

  必須--forceオプション。ボリュームの作成が失敗すると、管理者がシステム構成の変更により競合を引き起こす可能性があります。--forceオプションがないとvdo removeコマンドは失敗します

4.4. VDO スペース節約のテスト

4.4.1. VDO重複排除機能のテスト

  まず、VDO テスト ボリュームを作成します。
  テスト目的で、サイズ 2TiB の VDO ボリュームが 1.1TB 物理ボリュームに作成されました。

vdo create --name=vdo-test \
             --device=/dev/sdd \
             --vdoLogicalSize=2T \
             --writePolicy=sync \
             --verbose

  ● 非同期ストレージ上で VDO 非同期モードをテストするには、--writePolicy=async非同期ボリュームを作成するオプションを使用し
  ます。 ● 同期ストレージ上で VDO 同期モードをテストするには、--writePolicy=sync同期ボリュームを作成するオプションを使用します。

lsblk
NAME       MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdd          8:48   0   1.1T  0 disk 
└─vdo-test 253:1    0     2T  0 vdo  

  XFS または ext4 ファイル システムを使用して新しいボリュームをフォーマットします。

mkfs.xfs -K /dev/mapper/vdo-test

  フォーマットされたボリュームをマウントします。

mkdir /mnt/vdo-test
mount /dev/mapper/vdo-test /mnt/vdo-test && \
  chmod a+rwx /mnt/vdo-test

4.4.2. VDO の読み取りおよび書き込みパフォーマンスをテストする

  32 GiB のランダム データを VDO ボリュームに書き込みます。

dd if=/dev/urandom of=/mnt/vdo-test/testfile bs=4096 count=8388608
8388608+0 records in
8388608+0 records out
34359738368 bytes (34 GB) copied, 165.781 s, 207 MB/s

  VDO ボリュームからデータを読み取り、別のボリュームに書き込みます。

dd if=/mnt/vdo-test/testfile of=/tmp/testfile bs=4096
8388608+0 records in
8388608+0 records out
34359738368 bytes (34 GB) copied, 27.7768 s, 1.2 GB/s

  これら 2 つのファイルを比較します。

diff --report-identical-files /mnt/vdo-test/testfile /tmp/testfile 
Files /mnt/vdo-test/testfile and /tmp/testfile are identical

  コマンドは、これらのファイルが同一であることを報告する必要があります。

4.4.3. クリーン VDO テストボリューム

  VDO ボリュームに作成されたファイル システムをアンマウントします。

umount /mnt/vdo-test

  VDO テスト ボリュームをシステムから削除します。

vdo remove --name=vdo-test
Removing VDO vdo-test
Stopping VDO vdo-test

  ボリュームが削除されたことを確認します。

vdo list --all | grep vdo-test

4.5. 未使用のブロックを破棄する

4.5.1. ブロック破棄操作の種類

/sys/block/<device>/queue/discard_max_bytesファイル内の値がゼロ以外  の場合、物理的な破棄操作がサポートされます。

cat /sys/block/sdc/queue/discard_max_bytes 
0

  ブロックのドロップ操作は、さまざまな方法を使用して実行できます。
  バルク ドロップ:
  ユーザーによって明示的にトリガーされ、選択したファイル システム内の未使用のブロックをすべて破棄します。
  オンライン ドロップ:
  マウント時に指定し、ユーザーの介入なしでリアルタイムでトリガーします。オンライン破棄操作では、已使用アイドル状態のブロックのみが破棄されます。
  定期的な破棄:サービスが定期的に実行するバッチ操作
  です。systemd

4.5.2. 一括ブロック破棄を行う

  前提条件: ファイル システムがマウントされており、ファイル システムの基礎となるブロック デバイスが物理無視操作をサポートしています。
  選択したファイル システムで破棄を実行します。

df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vdo-name   50G   33M   50G   1% /vodvolume

fstrim /vodvolume

  マウントされたすべてのファイル システムで破棄を実行するには、次を使用します。

fstrim --all

  破棄操作をサポートしていないデバイス、または破棄操作をサポートしていない複数のデバイスで構成される論理デバイス (LVM または MD) を使用している場合:

fstrim /mnt/non_discard
fstrim: /mnt/non_discard: the discard operation is not supported

4.5.3. オンラインブロック破棄を有効にする

  オンライン ブロック破棄を実行すると、サポートされているすべてのファイル システムで未使用のブロックを自動的に破棄できます。
  マウント時にオンライン ブロック破棄を有効にするには、-o discardマウント オプションを追加します。

mount -o discard device mount-point

  ファイル システムを永続的にマウントする場合は、ファイル内のマウント エントリdiscardにオプションを追加します。/etc/fstab

4.5.4. 定期的なブロック破棄を有効にする

systemdタイマーを有効にすると、サポートされているすべてのファイル システムで未使用のブロックを定期的に破棄  できます。タイマーを
  有効にして開始します。systemd

systemctl enable --now fstrim.timer

  タイマーのステータスを確認します。

systemctl status fstrim.timer
● fstrim.timer - Discard unused blocks once a week
   Loaded: loaded (/usr/lib/systemd/system/fstrim.timer; enabled; vendor preset: disabled)
   Active: active (waiting) since Fri 2023-07-14 04:33:38 EDT; 1 day 5h ago
     Docs: man:fstrim

Jul 14 04:33:38 localhost.localdomain systemd[1]: Started Discard unused blocks once a week.

4.6. Web コンソールを使用した VDO ボリュームの管理

4.6.1. Web コンソールをインストールして有効にする

cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.5 (Ootpa)
yum install cockpit
systemctl enable cockpit.socket --now
systemctl status cockpit.socket

firewall-cmd --permanent --add-service=cockpit
firewall-cmd --reload

ss -tnlp | grep 9090
LISTEN    0         128                      *:9090                   *:*        users:(("systemd",pid=1,fd=28))       

  Web コンソールにログインします。
ここに画像の説明を挿入します

  サーバーのrootアカウントとパスワードを入力するだけです

4.6.2. Web コンソールでの VDO ボリュームの作成

  基本的に主要な操作は公式ガイドラインを参照してください。

4.6.3. Web コンソールでの VDO ボリュームのフォーマット

  基本的に主要な操作は公式ガイドラインを参照してください。

4.6.4. Web コンソールでの VDO ボリュームの拡張

  基本的に主要な操作は公式ガイドラインを参照してください。

5. AutoFS自動マウントサービス

  Linux を使用する場合、ハードウェア リソースにアクセスするには、mount コマンドを使用してハードウェア リソースをマウントし、ディレクトリにマップする必要があります。これにより、ストレージ メディアにアクセスして使用できるようになります。Samba または NFS サービスを使用する場合は、リモート ストレージ デバイスもマウントする必要があります。マウントは外部記憶メディアやファイルシステムを利用する際に必要な作業ですが、マウントするリソースが多すぎるとネットワークリソースやサーバーリソースに一定の負荷がかかり、サーバーのパフォーマンスが低下します。
  この問題を解決するために、autofs サービスを使用できます。autofs はシステム デーモンです。マウント情報を構成ファイルに書き込むことができます。ユーザーが他のストレージ メディアにアクセスしない場合、システムはマウントされません。ユーザーが他のストレージ メディアにアクセスしない場合、システムはマウントされません。ストレージ メディアにアクセスしようとすると、autofs はマウント操作を自動的に実行します。上記の操作はすべてユーザーに対して透過的です。このようにして、autofs サービスはサーバーのネットワーク リソースとハードウェア リソースを節約します。AutoFS は、ファイル システムを自動的にマウントするためのツールであり、通常は NFS (ネットワーク ファイル システム) マウントに使用されます。
   手順は次のとおりです。
   まず、NFS サーバーをサーバー b サーバーにインストールし、サーバー a の共有ストレージとして共有ディレクトリを作成します。

[root@serverb ~]# mkdir -p /rhome/ldapuser0
[root@serverb ~]# chmod 777 /rhome/ldapuser0/
[root@serverb ~]# vim /etc/exports
/rhome/ldapuser0 *(rw)

[root@serverb ~]# systemctl restart nfs-server.service
[root@serverb ~]# systemctl enable nfs-server.service

[root@serverb ~]# firewall-cmd --permanent --add-service=nfs
[root@serverb ~]# firewall-cmd --permanent --add-service=mountd
[root@serverb ~]# firewall-cmd --permanent --add-service=rpc-bind
[root@serverb ~]# firewall-cmd --reload

  次に、servera に autofs をインストールし、システムにログインした後、NFS 共有ディレクトリを自動的にマウントできる ldapuser0 ユーザーを作成します。

[root@servera ~]# showmount -e serverb.lab.example.com
Export list for serverb.lab.example.com:
/rhome/ldapuser0 *
[root@servera ~]# useradd ldapuser0
[root@servera ~]# vim /etc/passwd
ldapuser0:x:1002:1002::/rhome/ldapuser0:/bin/bash

  autofs サービスのメイン構成ファイルは /etc/auto.master です。開いた後、メイン構成ファイルに次の形式を記述する必要があります。

[root@servera ~]# yum install autofs.x86_64
[root@servera ~]# vim /etc/auto.master
/rhome  /etc/auto.nfs

[root@servera ~]# vim /etc/auto.nfs
ldapuser0          -rw       serverb.lab.example.com:/rhome/ldapuser0
[root@servera ~]# systemctl enable autofs.service --now
[root@servera ~]# systemctl restart autofs.service

  検証効果: ldapuser0 ユーザーでログインした後、マウントされたファイルが、serververb の NFS 共有ファイルを自動的にマウントしていることを確認します。

[root@servera ~]# su - ldapuser0
Last login: Fri Sep 29 00:40:22 CST 2023 on pts/0
[ldapuser0@servera ~]$
[ldapuser0@servera ~]$ df -Th
Filesystem                               Type      Size  Used Avail Use% Mounted on
devtmpfs                                 devtmpfs  887M     0  887M   0% /dev
tmpfs                                    tmpfs     914M     0  914M   0% /dev/shm
tmpfs                                    tmpfs     914M   17M  897M   2% /run
tmpfs                                    tmpfs     914M     0  914M   0% /sys/fs/cgroup
/dev/vda3                                xfs       9.9G  1.6G  8.4G  16% /
/dev/vda2                                vfat      100M  6.8M   94M   7% /boot/efi
tmpfs                                    tmpfs     183M     0  183M   0% /run/user/1000
serverb.lab.example.com:/rhome/ldapuser0 nfs4      9.9G  1.6G  8.4G  16% /rhome/ldapuser0

おすすめ

転載: blog.csdn.net/wangzongyu/article/details/133421024