0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Share a zonal persistent disk between multiple instances on GCP

Posted at

#はじめに

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を使用しました。
image.png

##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に変更します。停止なしで変更できますが念の為再起動します。
image.png

Read onlyでMountします。

sudo mount -o ro,noload /dev/sdb /mnt/disks/shared

##Instance-bを作成します。
Instance-aの共有DiskをRead-onlyで追加します。
image.png

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構成
はできない。

image.png

#投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?