OracleCloud – matoken's blog https://matoken.org/blog Is there no plan B? Tue, 28 Jun 2022 14:13:27 +0000 ja hourly 1 https://wordpress.org/?v=6.8.3 https://matoken.org/blog/wp-content/uploads/2025/03/cropped-1865f695c4eecc844385acef2f078255036adccd42c254580ea3844543ab56d9-32x32.jpeg OracleCloud – matoken's blog https://matoken.org/blog 32 32 OracleCloud VPSにブロックストレージを追加 https://matoken.org/blog/2022/06/28/add-block-storage-to-oracle-cloud-vps/ https://matoken.org/blog/2022/06/28/add-block-storage-to-oracle-cloud-vps/#respond Tue, 28 Jun 2022 14:13:26 +0000 http://matoken.org/blog/?p=3691

Matrixの文章を見ていたらOracleのサービスで200GBまでストレージが使えそうなのに気づきました.

表 1. Free Matrix Server using Oracle Cloud | Matrix.org
Vendor Time-limit Count RAM (GB) Storage (GB) Transfer (GB)

AWS

12 months

1 t2.micro

1

30

15

Azure

12 months

1 B1S

1

2x 64

15

GCP

no limit

1 e2-micro

1

30

1

Oracle

no limit

1-4 VM.Standard.A1.Flex

24

200

10000

公式ページを見ても200GB使えそうです.

2つのBlock Volumeストレージ、合計200 GB。

現在は50GB程x2利用しているのであと100GB使えそうです.試してみました.


https://cloud.oracle.com/ からログインして,「ストレージ」→「ブロック・ボリューム」から,「ブロック・ボリュームの作成」を行います.

そこで「名前」に「任意の名前」,ボリューム・サイズとパフォーマンス → カスタム,ボリューム・サイズ(GB)に「100GB」を設定.

左下の「リソース」,「メトリック」→「アタッチされたインスタンス」から「ブロック・ボリュームのアタッチ」で既存のインスタンスニアタッチします.
ここでは「ボリュームの選択」→「上で作成したボリューム」,「アタッチメント・タイプ」→「準仮想化」,「アクセス」→「読取り/書込み」,「デバイス・パス」→「/dev/oracleoci/oraclevdb」
という感じで設定しました.

(スクリーンショットを取得してなかったので大雑把です……)

この状態でインスタンを確認するとデバイス( /dev/oracleoci/oraclevdb )が出来ていました. /dev/sdb にシンボリックリンクがはられています.

$ ls /dev/oracleoci/oraclevdb
/dev/oracleoci/oraclevdb
$ ls -l /dev/sdb /dev/oracleoci/oraclevdb
lrwxrwxrwx 1 root root     6 Jun 28 12:57 /dev/oracleoci/oraclevdb -> ../sdb
brw-rw---- 1 root disk 8, 16 Jun 28 12:57 /dev/sdb

後は普通のLinuxなのでパーティションを切って,フォーマットしてマウントします.

$ sudo fdisk -l /dev/oracleoci/oraclevdb (1)
Disk /dev/oracleoci/oraclevdb: 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
$ sudo fdisk /dev/oracleoci/oraclevdb (2)

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 0x130d310a.

Command (m for help): n (3)
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p (4)
Partition number (1-4, default 1): (5)
First sector (2048-209715199, default 2048): (6)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199): (7)

Created a new partition 1 of type 'Linux' and of size 100 GiB.

Command (m for help): p (8)
Disk /dev/oracleoci/oraclevdb: 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: 0x130d310a

Device                    Boot Start       End   Sectors  Size Id Type
/dev/oracleoci/oraclevdb1       2048 209715199 209713152  100G 83 Linux

Command (m for help): w (9)
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

$ sudo mkfs.ext4 /dev/oracleoci/oraclevdb1 (10)
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 26214144 4k blocks and 6553600 inodes
Filesystem UUID: dbc5f8b5-5f38-4246-9f41-6003e1f5d1fb
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 mkdir /export (11)
$ sudo mount /dev/oracleoci/oraclevdb1 /export (12)
$ df -H | grep -vE "loop|tmpfs|udev" (13)
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        49G   29G   20G  60% /
/dev/sda15      103M  297k  102M   1% /boot/efi
/dev/sdb1       106G   63M  100G   1% /export
$ sudo umount /export (14)
$ echo "/dev/sdb1        /export ext4    defaults        0 1" | sudo tee -a /etc/fstab (15)
/dev/sdb1       /export ext4    defaults        0 1
$ sudo mount -a (16)
$ df -H | grep -vE "loop|tmpfs|udev" (17)
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        49G   29G   20G  60% /
/dev/sda15      103M  297k  102M   1% /boot/efi
/dev/sdb1       106G   63M  100G   1% /export
  1. diskの確認
  2. パーティションの設定
  3. n で新しいパーティション作成
  4. p でプライマリパーティション作成
  5. パーティション番号を Enter で規定値の 1
  6. 先頭セクタを Enter で規定値の 2048
  7. 終了セクタを Enter で規定値の 209715199 (全領域)
  8. p でパーティション設定確認
  9. w でパーティション書き込み
  10. ext4の既定値でフォーマット
  11. マウントポイント作成
  12. マウント
  13. 容量確認
  14. アンマウント
  15. /etc/fatab を設定
  16. fstab を使ってマウント
  17. マウント確認

後は普通に使えるはずです.

ということでarm64 4core, 24GB RAN, Disk 150GBな無料VPSができました.amd64のインスタンスを削除すればDisk 200GBにもできるはずです.
これが無料で使えるのすごいですね.(いつ使えなくなってもおかしくはないだろうけど)

]]>
https://matoken.org/blog/2022/06/28/add-block-storage-to-oracle-cloud-vps/feed/ 0
導入済みのLinuxにスワップを設定する(Oracle Cloud VPS) https://matoken.org/blog/2022/04/23/set-up-swap-on-installed-linuxoracle-cloud-vps/ https://matoken.org/blog/2022/04/23/set-up-swap-on-installed-linuxoracle-cloud-vps/#respond Fri, 22 Apr 2022 22:49:44 +0000 http://matoken.org/blog/?p=3624

最近Oracle Cloud VPSのFree Tier Always Free枠で遊んでいます.
今日はなんだかとても重くなりましたRAMが1GBあるのですが,9割以上利用していました.swapは未設定.swapを設定してみました.
Oracle Cloudですが大抵の環境でも同じように出来るはずです.

アドホックなswapファイル設定

まずは急場しのぎによく使う方法でスワップファイルを作成して利用する方法.

適当な場所に空ファイルを作成します. ここでは2GB分作成しました.

$ sudo dd if=/dev/zero of=/var/tmp/swap bs=1M count=2048

swapを設定します.

$ sudo chmod 600 /var/tmp/swap (1)
$ sudo mkswap /var/tmp/swap (2)
$ sudo swapon /var/tmp/swap (3)
$ free -h (4)
              total        used        free      shared  buff/cache   available
Mem:          966Mi       303Mi        62Mi        12Mi       600Mi       501Mi
Swap:         2.0Gi       0.0Ki       2.0Gi
$ sudo swapoff /var/tmp/swap (5)
$ sudo rm /var/tmp/swap (6)
  1. rootのみ読み書きに設定
  2. swapファイルを初期化
  3. swapに割当
  4. swapが設定されたのを確認
  5. 必要なくなったらswapから取り外し
  6. 必要なくなったswapファイルを削除

使い続けたい場合は/etx/fstabに設定することで永続化して再起動後も利用することができます.(下のswapパーティションを作る方法のほうが少し速いはず)

$ sudo vi /etc/fstab (1)
$ sudo git -C /etc diff HEAD~ /etc/fstab (2)
diff --git a/fstab b/fstab
index d1ac1c3..01c9c0e 100644
--- a/fstab
+++ b/fstab
@@ -1,5 +1,6 @@
 LABEL=cloudimg-rootfs  /        ext4   defaults        0 1
 LABEL=UEFI     /boot/efi       vfat    umask=0077      0 1
+/var/tmp/swap  none    swap    pri=-1  0 0

 # CLOUD_IMG: This file was created/modified by the Cloud Image build process
 ######################################
$ sudo swapon -av (3)
swapon: /var/tmp/swap: found signature [pagesize=4096, signature=swap]
swapon: /var/tmp/swap: pagesize=4096, swapsize=2147483648, devsize=2147483648
swapon /var/tmp/swap
$ free (4)
              total        used        free      shared  buff/cache   available
Mem:         989340      308556       71368       12880      609416      517280
Swap:       2097148           0     2097148
  1. /etc/fatab 修正
  2. /etc/fstab 修正内容
  3. swapを手動で反映(次回起動時からは自動的に反映される)
  4. swapが設定されたのを確認

ディスクを縮小してswapパーティションを作成

swapファイルを使う方法はお手軽ですが,レイヤーが増えるので少し遅くなるはずです.割当済のディスクを縮小してswapパーティションを作成してマウントします.

Warning

設定をミスするとシステムが壊れるので注意して操作してください.操作に不安がある場合は上のswapファイルを利用したほうが安全です.

Partedで処理を行います.GUIの場合はgPartedが解りやすくて便利です.
現在の状態を確認してみます.空きディスクはほとんどありませんが,パーティション1の /dev/dsa1 を縮小してswap用に貰うことにします.

$ sudo parted /dev/sda
  :
(parted) print free
Model: ORACLE BlockVolume (scsi)
Disk /dev/sda: 50.0GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
        17.4kB  1049kB  1031kB  Free Space
14      1049kB  5243kB  4194kB                     bios_grub
15      5243kB  116MB   111MB   fat32              boot, esp
 1      116MB   50.0GB  49.9GB  ext4

パーティション1を50GBから48GBにリサイズします.

(parted) resizepart
Partition number? 1
Warning: Partition /dev/sda1 is being used. Are you sure you want to continue?
Yes/No? yes
End?  [50.0GB]? 48GB
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? yes

パーティション1が小さくなりました.

(parted) print
Model: ORACLE BlockVolume (scsi)
Disk /dev/sda: 50.0GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
14      1049kB  5243kB  4194kB                     bios_grub
15      5243kB  116MB   111MB   fat32              boot, esp
 1      116MB   48.0GB  47.9GB  ext4

できた空き領域からswap用のパーティーションを作成します.

(parted) mkpart
Partition name?  []?
File system type?  [ext2]? linux-swap
Start? 48.0GB
End? 50GB
(parted) print
Model: ORACLE BlockVolume (scsi)
Disk /dev/sda: 50.0GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system     Name  Flags
14      1049kB  5243kB  4194kB                        bios_grub
15      5243kB  116MB   111MB   fat32                 boot, esp
 1      116MB   48.0GB  47.9GB  ext4
 2      48.0GB  50.0GB  2009MB  linux-swap(v1)

(parted) quit
Information: You may need to update /etc/fstab.

swapパーティションを初期化します.

$ sudo mkswap /dev/sda2
Setting up swapspace version 1, size = 1.9 GiB (2009067520 bytes)
no label, UUID=4e27ed83-3d75-4c3d-87ac-f16e618bba4a

アドホックに手動でswapを有効化してみます.

$ sudo swapon -v UUID=4e27ed83-3d75-4c3d-87ac-f16e618bba4a
swapon: /dev/sda2: found signature [pagesize=4096, signature=swap]
swapon: /dev/sda2: pagesize=4096, swapsize=2009071616, devsize=2009071616
swapon /dev/sda2
$ free
              total        used        free      shared  buff/cache   available
Mem:         989340      311428       83696       12884      594216      513164
Swap:       1961980           0     1961980

一旦swapをoffにして永続化のために/etc/fstabに登録してswaponしてみます.

$ sudo swapoff UUID=4e27ed83-3d75-4c3d-87ac-f16e618bba4a
$ sudo vi /etc/fstab
$ sudo git -C /etc diff /etc/fstab
diff --git a/fstab b/fstab
index e22bda5..72d64af 100644
--- a/fstab
+++ b/fstab
@@ -1,6 +1,6 @@
 LABEL=cloudimg-rootfs  /        ext4   defaults        0 1
 LABEL=UEFI     /boot/efi       vfat    umask=0077      0 1
-/var/tmp/swap  none    swap    pri=20  0 0
+UUID=4e27ed83-3d75-4c3d-87ac-f16e618bba4a      none    swap    pri=-1  0 0

 # CLOUD_IMG: This file was created/modified by the Cloud Image build process
 ######################################
ubuntu@instance-20220327-0134:~$ sudo swapon -a
ubuntu@instance-20220327-0134:~$ free
              total        used        free      shared  buff/cache   available
Mem:         989340      312360       80884       12884      596096      512232
Swap:       1961980           0     1961980

次回起動時から自動的に有効になるはずです.

環境

Oracle Cloud コンピュートインスタンス
イメージ
Canonical-Ubuntu-20.04-Minimal-2022.03.04-0
$ dpkg-query -W parted mount
mount   2.34-0.1ubuntu9.3
parted  3.3-4ubuntu0.20.04.1
$ lsb_release -dr
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
$ uname -a
Linux instance-20220327-0134 5.13.0-1027-oracle #32~20.04.1-Ubuntu SMP Fri Apr 15 05:59:34 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
]]>
https://matoken.org/blog/2022/04/23/set-up-swap-on-installed-linuxoracle-cloud-vps/feed/ 0