複数のディスク(HDD/SSD)をLVMを用いて1つに統合する方法を説明します。
Virtual Box上の Ubuntu22.04で実行確認しました。
ディスク周りの操作は、既存の設定を間違って変更したら起動できなくなる可能性があります。
Virtual BoxやHype-Vなど仮想環境で練習することをオススメします。
実行コマンド
以下を順番に実行していきます。
ディスクは3個追加し、3個を1つのLVMにまとめます。
デバイス名は、実行環境に合わせて読み替えてください。
fdisk -l と parted -l は、同じ役割です。
fdiskが 2TB以上に対応できていない場合があるので、両方で確認しています。
pvcreate /dev/sdb
pvcreate /dev/sdc
pvcreate /dev/sde
vgcreate ssdGroup1 /dev/sdb /dev/sdc /dev/sdd
lvcreate -l 100%FREE -n lv0 ssdGroup1
lvdisplay
mkfs -t xfs /dev/ssdGroup1/lv0
fdisk -l
parted -l
mkdir /data3
mount /dev/ssdGroup1/lv0 /data3
vi /etc/fstab
事前の確認作業
現在の状態を確認します。
10GBで動作しているUbuntuに、物理的にディスクを追加した直後の状態です。
パーティションの作成、フォーマット、マウントなどしていない状態。
パーティション構成を把握します。
tmpfs は一時ファイルを格納するための仕組みなので、特に気にしないでいいです。
$ $ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 98M 1.1M 97M 2% /run /dev/mapper/ubuntu--vg-ubuntu--lv 8.1G 4.0G 3.7G 53% / tmpfs 486M 0 486M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda2 1.7G 125M 1.5G 8% /boot tmpfs 98M 4.0K 98M 1% /run/user/1000
parted -l で確認。
$ $ sudo parted -l Model: ATA VBOX HARDDISK (scsi) Disk /dev/sda: 10.7GB ★OS領域など Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 2097kB 1049kB bios_grub 2 2097kB 1881MB 1879MB ext4 3 1881MB 10.7GB 8855MB Error: /dev/sdb: unrecognised disk label ★未使用状態 Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdb: 10.7GB ★10GBを増設 Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags: Error: /dev/sdc: unrecognised disk label ★未使用状態 Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdc: 10.7GB ★10GBを増設 Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags: Error: /dev/sdd: unrecognised disk label ★未使用状態 Model: ATA VBOX HARDDISK (scsi) Disk /dev/sdd: 10.7GB ★10GBを増設 Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags: Model: Linux device-mapper (linear) (dm) Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 8854MB Sector size (logical/physical): 512B/512B Partition Table: loop Disk Flags: Number Start End Size File system Flags 1 0.00B 8854MB 8854MB ext4
fdisk -l で確認。
$ $ sudo fdisk -l Disk /dev/loop0: 61.89 MiB, 64901120 bytes, 126760 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop1: 44.68 MiB, 46845952 bytes, 91496 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop2: 79.95 MiB, 83832832 bytes, 163736 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors Disk model: VBOX HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 1F0359F9-D4B9-4F46-963A-9869627352DD Device Start End Sectors Size Type /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 3674111 3670016 1.8G Linux filesystem /dev/sda3 3674112 20969471 17295360 8.2G Linux filesystem Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors Disk model: VBOX HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors Disk model: VBOX HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/sdd: 10 GiB, 10737418240 bytes, 20971520 sectors Disk model: VBOX HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 8.25 GiB, 8854175744 bytes, 17293312 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
/dev/sdb: unrecognised disk label ★未使用状態
/dev/sdX <- これデバイス名が重要
ディスクのメーカーなどでデバイス名が変わることがありますが、基本的に 以下のように 末尾が、”a”,”b”,”c”,”d” とアルファベット順に割り当てられていきます。
/dev/sda => /dev/sdb => /dev/sdc => /dev/sdd …
LVMを作成
PV・VG・LVを作成します。
デバイスは、 /dev/sdb、/dev/sdc、/dev/sdd に割り当たっています。
PV(物理ボリューム)を作成
# $ sudo pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. $ sudo pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created. $ sudo pvcreate /dev/sdd Physical volume "/dev/sdd" successfully created. $ sudo vgcreate ssdGroup1 /dev/sdb /dev/sdc /dev/sdd Volume group "ssdGroup1" successfully created $ sudo lvcreate -l 100%FREE -n lv0 ssdGroup1 Logical volume "lv0" created.
VG(ボリューム・グループ)を作成
$ $ sudo vgcreate ssdGroup1 /dev/sdb /dev/sdc /dev/sdd Volume group "ssdGroup1" successfully created
LV(論理ボリューム)を作成
$ $ sudo lvcreate -l 100%FREE -n lv0 ssdGroup1 Logical volume "lv0" created.
$ $ sudo lvdisplay --- Logical volume --- LV Path /dev/ssdGroup1/lv0 ★ LV Name lv0 VG Name ssdGroup1 ★ LV UUID PwpcuU-wauL-czTF-aaAo-17LF-boRl-diP73w LV Write Access read/write LV Creation host, time ubuntu2004, 2022-10-03 07:47:20 +0000 LV Status available # open 0 LV Size <29.99 GiB Current LE 7677 Segments 3 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1 --- Logical volume --- LV Path /dev/ubuntu-vg/ubuntu-lv LV Name ubuntu-lv VG Name ubuntu-vg LV UUID b4K9qQ-0rVm-6KM1-BuMu-DBgC-NRYR-lL3fS7 LV Write Access read/write LV Creation host, time ubuntu-server, 2022-10-03 00:15:47 +0000 LV Status available # open 1 LV Size <8.25 GiB Current LE 2111 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
フォーマット
xfsでフォーマットします。
$ $ sudo mkfs -t xfs /dev/ssdGroup1/lv0 meta-data=/dev/ssdGroup1/lv0 isize=512 agcount=4, agsize=1965312 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=7861248, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=3838, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
マウント
マウントポイントを作成し、mountコマンドでマウント。
$ $sudo mkdir /data3 $sudo mount /dev/ssdGroup1/lv0 /data3
OS起動時の自動マウント設定(fstab変更)
OS起動時の自動マウントの設定を行います。
mountコマンドでのマウントは、OS停止すると解除されます。
永続化するために、/etc/fstab に設定を追加します。
$ $ sudo vi /etc/fstab /dev/mapper/ssdGroup1-lv0 /data3 xfs defaults 0 0 ↑★1行追加
あとがき
ディスクの管理方法もコマンドも少しずつ変わってきていますね。
LVMで作成した領域は、簡単に領域を拡張することができます。
昔は、ディスク容量の増強は大変な作業でした。
今ではLVMでディスクを管理できるので、作業が楽になりましたね。
Virual Boxでディスクを追加する方法は以下です。