先日使えるようにした Oracle Cloud の無料枠 Always Free で使えるリソースには、仮想インスタンスの他、ストレージやデータベースなども含まれています。そして今回は、前回作成したインスタンスにブロック・ボリュームを組み合わせ、 Nextcloud による自分用のオンラインストレージを立ち上げたいと思います。
Always Freeのストレージ上限
Oracle CloudのAlways Freeで利用可能なリソースは、こちらの公式ドキュメントで確認することが出来ます。
ストレージは200GBまで使えますが、これは今回これから作ろうとしているブロック・ボリュームの他に、ブート・ボリュームと呼ばれる、インスタンスのOSが入っているストレージも含まれるので注意が必要です。更に英文ドキュメントを読み解くと、このブート・ボリュームのサイズは最低50GB必要と明記されているので、ブート・ボリュームを削ってブロック・ボリュームへより多くを割り当てる、という手も使えません。まとめると、
- ブロック・ボリュームとブート・ボリューム併せて計200GBまで
- インスタンスのブートボリュームは最低50GB
管理画面のダッシュボードにこうしたリソースの利用状況を可視化してくれると気付きやすいのですが、不注意で課金領域に入ることを期待しているのでしょうし、これはユーザが日頃気をつけるしかありませんね。
ブロック・ボリュームの作成
左上のメニューを【ストレージ→ブロック・ボリューム】と進みます。
ブロック・ボリュームのページで「ブロック・ボリュームの作成」ボタンをクリックすると、ページ右から作成フォームが出てきます。
作成フォームの上半分は基本事項。後で識別しやすい名前を入力した後、容量がデフォルトで50GBなのでこれをカスタムで100GBに変更する程度で、パフォーマンスは「バランス」を維持したままで触りません。
続く作成フォーム後半は、バックアップやレプリケーションに関する項目などで、デフォルトのまま「ブロック・ボリュームの作成」ボタンをクリックします(バックアップの機能はいずれ試してみたいところです)。
数秒でブロック・ボリューム出来上がりました。
インスタンスへアタッチ
次にこのブロック・ボリュームを前回作成したArm構成のインスタンスへアタッチします。インスタンスの詳細の左下方のリソースメニューにある、「アタッチされたブロック・ボリューム」を開いて、新たにアタッチするボリュームを設定します。右から設定フォームが開くので、アタッチメント・タイプをiSCSIに、ボリュームは先ほど作成した名前のブロック・ボリュームを選択します。
設定フォームでは続いてアクセスモードを選ぶ項目がありますが、デフォルトの読取り・書き込みとします。その下にある共有可能モードはかなり興味深いので、いずれ試してみたいです。
こうしてアタッチ済となったブロック・ボリュームが一覧に表示されるので、その右の「︙」を押してiSCSI情報を確認します。
表示されiSCSI情報のうち、「接続のためのコマンド」を次項で使うのでコピーしておきます。
ちなみにブロック・ボリューム側からも、アタッチされたインスタンスを次のように辿ることが出来ます。
インスタンスのシステム内でマウント
前回、Ubuntu20.04でセットアップしたインスタンスへsshで入り、アタッチされたブロック・ボリュームをiSCSIデバイスとしてマウントします。まずは先ほどコピーしたiSCSIコマンドを流し込みます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ sudo iscsiadm -m node -o new -T iqn.2015-12.com.oracleiaas:7c503381-90c3-4242-855b-a1005672fb1e -p 169.254.2.2:3260 New iSCSI node [tcp:[hw=,ip=,net_if=,iscsi_if=default] 169.254.2.2,3260,-1 iqn.2015-12.com.oracleiaas:7c503381-90c3-4242-855b-a1005672fb1e] added $ sudo iscsiadm -m node -o update -T iqn.2015-12.com.oracleiaas:7c503381-90c3-4242-855b-a1005672fb1e -n node.startup -v automatic $ sudo iscsiadm -m node -T iqn.2015-12.com.oracleiaas:7c503381-90c3-4242-855b-a1005672fb1e -p 169.254.2.2:3260 -l Logging in to [iface: default, target: iqn.2015-12.com.oracleiaas:7c503381-90c3-4242-855b-a1005672fb1e, portal: 169.254.2.2,3260] (multiple) Login to [iface: default, target: iqn.2015-12.com.oracleiaas:7c503381-90c3-4242-855b-a1005672fb1e, portal: 169.254.2.2,3260] successful. $ sudo fdisk -l Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors Disk model: BlockVolume Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 1048576 bytes |
/dev/sdb として認識されたので、パーティションを作成し、ext4でフォーマットします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
$ sudo fdisk /dev/sdb Welcome to fdisk (util-linux 2.34). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x1a1f6c69. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-209715199, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199): Created a new partition 1 of type 'Linux' and of size 100 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. $ sudo mkfs.ext4 /dev/sdb1 mke2fs 1.45.5 (07-Jan-2020) Creating filesystem with 26214144 4k blocks and 6553600 inodes Filesystem UUID: 71576f71-7c96-4fe7-8ad6-8c94c473e3d7 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 $ sudo fdisk -l /dev/sdb Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors Disk model: BlockVolume Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 1048576 bytes Disklabel type: dos Disk identifier: 0x1a1f6c69 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 209715199 209713152 100G 83 Linux |
生成されたパーティションのUUIDを調べたら、マウントポイントを作成し、 /etc/fstab へ永続的なマウントを記述します。
1 2 3 4 5 6 7 |
$ ls /dev/disk/by-uuid/ -l lrwxrwxrwx 1 root root 11 Mar 18 05:36 4980-D6AC -> ../../sda15 lrwxrwxrwx 1 root root 10 Jun 15 09:06 5d62377d-2434-4e24-ac1c-1bbb53315428 -> ../../sda1 lrwxrwxrwx 1 root root 10 Jun 20 21:21 71576f71-7c96-4fe7-8ad6-8c94c473e3d7 -> ../../sdb1 $ sudo mkdir /media/volblk1 $ sudo nano /etc/fstab |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
LABEL=cloudimg-rootfs / ext4 defaults 0 1 LABEL=UEFI /boot/efi vfat umask=0077 0 1 # CLOUD_IMG: This file was created/modified by the Cloud Image build process ###################################### ## ORACLE CLOUD INFRASTRUCTURE CUSTOMERS ## ## If you are adding an iSCSI remote block volume to this file you MUST ## include the '_netdev' mount option or your instance will become ## unavailable after the next reboot. ## SCSI device names are not stable across reboots; please use the device UUID ## instead of /dev path. ## ## Example: ## UUID="94c5aade-8bb1-4d55-ad0c-388bb8aa716a" /data1 ext4 defaults,noatime,_netdev 0 2 ## ## More information: ## https://docs.us-phoenix-1.oraclecloud.com/Content/Block/Tasks/connectingtoavolume.htm ## UUID=71576f71-7c96-4fe7-8ad6-8c94c473e3d7 /media/volblk1 ext4 defaults,_netdev,noatime 0 2 |
インスタンスを再起動後、ブロック・ボリュームがマウントされていることを確認出来ました。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ mount | grep sd /dev/sda1 on / type ext4 (rw,relatime) cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate) /dev/sda15 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro) /dev/sdb1 on /media/volblk1 type ext4 (rw,noatime,stripe=256,_netdev) $ df -h | grep sd /dev/sda1 45G 2.8G 43G 7% / /dev/sda15 98M 290K 98M 1% /boot/efi /dev/sdb1 98G 85M 93G 1% /media/volblk1 $ ls -l /media/volblk1 drwx------ 2 root root 16384 Jun 20 21:20 lost+found |
次ページでは、ファイヤウォールの設定の後、いよいよNextcloudをインストールします。