はじめに
先日 Oracle CloudでRHELを利用するときに気を付けること という記事の中でRHELはマルチパス対応ができないため超高パフォーマンスのブロックボリュームを利用できない、という事を書きました。
では、RHELを利用する場合で高いディスク性能が要求された場合には諦めなければならないのでしょうか?というと、そんなことはありません。
複数のブロックボリュームをRAID構成にすることで高いディスク性能を確保することが可能です。
という事で、Oracle Cloud上でのRAID構成を試してみます。
Oracle CloudでのRAID構成
最初から大変恐縮なのですが、OCI上でRHELを利用するにはカスタムイメージが必要となり、カスタムイメージはFreeTierでは利用できないため、RAID構成としてはOracle Linuxで検証します。
RAIDの作成
検証用のインスタンスに二つのブロックボリュームをアタッチします。

パーティションを作成し、OS上から確認します。
$ sudo parted -s -a optimal /dev/sda mklabel gpt mkpart primary 0% 100% set 1 lvm on
$ sudo parted -s -a optimal /dev/sdc mklabel gpt mkpart primary 0% 100% set 1 lvm on
$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
└─sda1 8:1 0 50G 0 part
sdb 8:16 0 46.6G 0 disk
├─sdb1 8:17 0 100M 0 part /boot/efi
├─sdb2 8:18 0 1G 0 part /boot
└─sdb3 8:19 0 45.5G 0 part
├─ocivolume-root 252:0 0 35.5G 0 lvm /
└─ocivolume-oled 252:1 0 10G 0 lvm /var/oled
sdc 8:32 0 50G 0 disk
└─sdc1 8:33 0 50G 0 part
$ sudo parted /dev/sda print
Model: ORACLE BlockVolume (scsi)
Disk /dev/sda: 53.7GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 53.7GB 53.7GB primary lvm
$ sudo parted /dev/sdc print
Model: ORACLE BlockVolume (scsi)
Disk /dev/sdc: 53.7GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 53.7GB 53.7GB primary lvm
また、インスタンスのソフトウェアRAIDツール mdadm のインストール確認を行っておきます。
# dnf list --installed mdadm
Installed Packages
mdadm.x86_64 4.2-2.el8 @anaconda
アタッチされている二つのディスクを利用し、RAID0の一つのボリュームを作成します。
$ sudo mdadm --create --verbose --force --assume-clean --raid-devices=2 --level=raid0 /dev/md0 /dev/sda1 /dev/sdc1
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
作成したRAIDの状態を確認します。
$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Feb 5 05:49:57 2023
Raid Level : raid0
Array Size : 104785920 (99.93 GiB 107.30 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Feb 5 05:49:57 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : -unknown-
Chunk Size : 512K
Consistency Policy : none
Name : asahidetest001:0 (local to host asahidetest001)
UUID : xxxxxxxx:342ac97b:782961f4:0707b646
Events : 0
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 33 1 active sync /dev/sdc1
$ sudo cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sdc1[1] sda1[0]
104785920 blocks super 1.2 512k chunks
unused devices: <none>
$ sudo mdadm --examine --scan | sudo tee -a /etc/mdadm.conf
ARRAY /dev/md/0 metadata=1.2 UUID=xxxxxxxx:342ac97b:782961f4:0707b646 name=asahidetest001:0
作成したRAID(/dev/md0)にファイルシステムを作成します。
$ sudo mkfs.ext4 -F /dev/md0
mke2fs 1.45.6 (20-Mar-2020)
Discarding device blocks: done
Creating filesystem with 26196480 4k blocks and 6553600 inodes
Filesystem UUID: xxxxxxxx-ca87-4864-9efe-546bbac337ee
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks):
done
Writing superblocks and filesystem accounting information: done
性能の確認
今回もddでスループットを確認してみます。
$ sudo dd if=/dev/zero of=/mnt/raid0/dummy bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 19.9057 s, 52.7 MB/s
以前「Oracle Cloud(OCI)のBlock Volume の性能動的スケーリングを試してみた」でバランスのブロックボリュームに対してddを実施した結果は以下となりますので、二倍近くになっていることが確認できます。
$ sudo dd if=/dev/zero of=/mnt/bv1/dummy bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 38.5024 s, 27.2 MB/s
まとめ
RAID0構成をとることで、通常の性能のブロックボリュームにおいても性能が確保できることが確認できました。題名にRHELと書いておきながらRHELを使っていないのは大変申し訳ないですが、動きとしては同じはずなので環境持っている方に試していただければと思います。。
また、RAID0は当然ながら冗長性がないため、実際に利用される場合にはRAID10等を利用されることをお勧めします。ランダムアクセス性能等も確認されたい場合には、fio等で確認していただければと思います。
注意
インスタンスのシェイプ(フレキシブルではOCPU数)にネットワーク帯域幅は制限されるため、利用される際にはご注意ください。
VM-Standardの帯域幅は こちら です。