#はじめに
AWSでMulti-Attach for Provisioned IOPS (io1) Amazon EBS Volumesが発表されました。共有DiskにRead/Writeできるので共有Disk使ったクラスタ構成するのに良さそうです。
https://aws.amazon.com/blogs/aws/new-multi-attach-for-provisioned-iops-io1-amazon-ebs-volumes/
GCPは以前から複数GCEインスタンスから共有DiksへのReadだけは出来るのを思い出したので、このタイミングで試してみたいと思います。
https://cloud.google.com/compute/docs/disks/add-persistent-disk#use_multi_instances
##Instance-aを作成します。
共有DiskにするためのAdditional disksを追加します。モードは読み取りテスト用にファイルを書き込みたいため最初はRead/Writeにします。Imageはデフォルトのdebian-9-drawfork-v20200207を使用しました。
##Instance-aにSSHログインしてテスト用の読み取りファイルを作成します。
https://cloud.google.com/compute/docs/disks/add-persistent-disk
外付けDiskの状態を確認します。sdbが共有Diskとして使用しようと考えいるDiskになります。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
└─sda1 8:1 0 10G 0 part /
sdb 8:16 0 500G 0 disk
フォーマットします。
$ sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
mke2fs 1.43.4 (31-Jan-2017)
Discarding device blocks: done
Creating filesystem with 131072000 4k blocks and 32768000 inodes
Filesystem UUID: 4013e511-a9b9-467b-b471-a30cff9d0332
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
Mountポイントを作成します。
$ sudo mkdir -p /mnt/disks/shared
Mountします。
$ sudo mount -o discard,defaults /dev/sdb /mnt/disks/shared
確認します。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1885344 0 1885344 0% /dev
tmpfs 379296 1816 377480 1% /run
/dev/sda1 10253588 2070460 7642560 22% /
tmpfs 1896476 0 1896476 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 1896476 0 1896476 0% /sys/fs/cgroup
/dev/sdb 515010816 73756 514920676 1% /mnt/disks/shared
書き込み権限付与します。
$ sudo chmod a+w /mnt/disks/shared/
テスト用のファイルを書き込みます。
$ echo 'test message' > /mnt/disks/shared/test.txt
$ cat /mnt/disks/shared/test.txt
test message
追加DiskのモードをRead/WriteからRead onlyに変更します。停止なしで変更できますが念の為再起動します。
Read onlyでMountします。
sudo mount -o ro,noload /dev/sdb /mnt/disks/shared
##Instance-bを作成します。
Instance-aの共有DiskをRead-onlyで追加します。
SSHでログインして確認します。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 1885344 0 1885344 0% /dev
tmpfs 379296 1816 377480 1% /run
/dev/sda1 10253588 2024336 7688684 21% /
tmpfs 1896476 0 1896476 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 1896476 0 1896476 0% /sys/fs/cgroup
追加DiskがMountされていないのでRead onlyでMountします。
sudo mount -o ro,noload /dev/sdb /mnt/disks/shared
ファイルを確認します。
Instance-b
@instance-b:~$ cat /mnt/disks/shared/test.txt
test message
Instance-a
instance-a:~$ cat /mnt/disks/shared/test.txt
test message
##Zoneを跨いだ共有Disk構成
はできない。
#投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。