OCI の Block Volume を Linux Compute に Attach して xfsファイルシステム でマウントする。(Oracle Cloud Infrastructure)
- 1. 環境
- 2. 参考情報(マニュアル)
- 3. Block Volume作成&Attach
- 4. Block Volume への接続(Compute上でiscsiadm実行)
- 5. パーティション作成(fdisk)
- 6. ファイルシステム・フォーマット(mkfs) + UUID確認(blkid)
- 7. マウント用ディレクトリ作成、fstab編集、マウント実行
- 8. まとめ
恐ろしくベーシックな内容やけど、OCI の Block Volume を Linux Compute に Attach して xfsファイルシステム でマウントしてみるやで。
彡(゚)(゚)
1. 環境
前回 Terraform で作成/廃棄できるようにした環境を使います。Private Compute に xfs をマウントします。
検証によく使う Oracle Cloud Infrastructure(OCI)環境を Terraform で作成してみる。
https://qiita.com/ora_gonsuke777/items/8651c4075ec6bf436c4f
2. 参考情報(マニュアル)
以下のマニュアル&他エントリを参照しています。@yamada-hakase さん、いつもお世話になります。
(`・ω・)ゞ
ブロック・ボリュームの概要
https://docs.cloud.oracle.com/ja-jp/iaas/Content/Block/Concepts/overview.htmブロック・ボリュームをiSCSIでアタッチする
https://qiita.com/yamada-hakase/items/eb2ca44a112b3b18164e
3. Block Volume作成&Attach
Block Volume を作成して Compute に Attach します。Attach のオプションは iSCSI と 準仮想化(Paravirtualized) が有りますが、今回は SLA が適用される iSCSI を選択します。
ブロック・ボリューム・パフォーマンス
https://docs.cloud.oracle.com/ja-jp/iaas/Content/Block/Concepts/blockvolumeperformance.htm
ボリューム・パフォーマンスSLAは、iSCSIボリューム・アタッチメントのみに適用され、準仮想化アタッチメントには適用されません。
Block Volumeの作成画面
Block VolumeのAttach画面
4. Block Volume への接続(Compute上でiscsiadm実行)
iSCSI の場合、Compute Instance上 でiscsiadmコマンドを実行して、ボリュームに接続する必要が有ります。この操作をしないと OS上で Block Device として認識されません。
ボリュームへの接続
https://docs.cloud.oracle.com/ja-jp/iaas/Content/Block/Tasks/connectingtoavolume.htm
Block Volume のコンソールから iscsiadm のコマンドを取得できます。これらのコマンドを Private Compute上で実行します。
- コンソールから取得したiscsiadmコマンド
sudo iscsiadm -m node -o new -T iqn.2015-12.com.oracleiaas:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -p xxx.xxx.xxx.xxx:3260 sudo iscsiadm -m node -o update -T iqn.2015-12.com.oracleiaas:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -n node.startup -v automatic sudo iscsiadm -m node -T iqn.2015-12.com.oracleiaas:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -p xxx.xxx.xxx.xxx:3260 -l
実行結果は以下の通り
$ sudo iscsiadm -m node -o new -T iqn.2015-12.com.oracleiaas:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -p xxx.xxx.xxx.xxx:3260 New iSCSI node [tcp:[hw=,ip=,net_if=,iscsi_if=default] xxx.xxx.xxx.xxx,3260,-1 iqn.2015-12.com.oracleiaas:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] added $ sudo iscsiadm -m node -o update -T iqn.2015-12.com.oracleiaas:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -n node.startup -v automatic $ sudo iscsiadm -m node -T iqn.2015-12.com.oracleiaas:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -p xxx.xxx.xxx.xxx:3260 -l Logging in to [iface: default, target: iqn.2015-12.com.oracleiaas:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, portal: xxx.xxx.xxx.xxx,3260] (multiple) Login to [iface: default, target: iqn.2015-12.com.oracleiaas:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, portal: xxx.xxx.xxx.xxx,3260] successful. $ ls -la /dev/oracleoci/* lrwxrwxrwx. 1 root root 6 Jun 14 07:11 /dev/oracleoci/oraclevda -> ../sda lrwxrwxrwx. 1 root root 7 Jun 14 07:11 /dev/oracleoci/oraclevda1 -> ../sda1 lrwxrwxrwx. 1 root root 7 Jun 14 07:11 /dev/oracleoci/oraclevda2 -> ../sda2 lrwxrwxrwx. 1 root root 7 Jun 14 07:11 /dev/oracleoci/oraclevda3 -> ../sda3 lrwxrwxrwx. 1 root root 6 Jun 14 07:29 /dev/oracleoci/oraclevdb -> ../sdb ★この Block Device が認識 $
5. パーティション作成(fdisk)
fdiskコマンドでパーティションを作成します。特別な事は無いのでつらつらと彡(゚)(゚)
sudo fdisk /dev/oracleoci/oraclevdb
実行結果は以下の通りです。
$ sudo fdisk /dev/oracleoci/oraclevdb Welcome to fdisk (util-linux 2.23.2). : Command (m for help): n ★n を入力(新規パーティション作成) Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p ★p を入力(Primaryパーティション作成) Partition number (1-4, default 1): 1 ★1 を入力 First sector (2048-1256194047, default 2048): ★default Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-1256194047, default 1256194047): ★default Using default value 1256194047 Partition 1 of type Linux and of size 599 GiB is set Command (m for help): w ★w を入力(パーティション情報を書き込み) The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. $ ls -la /dev/oracleoci/* lrwxrwxrwx. 1 root root 6 Jun 14 07:11 /dev/oracleoci/oraclevda -> ../sda : lrwxrwxrwx. 1 root root 6 Jun 14 07:35 /dev/oracleoci/oraclevdb -> ../sdb lrwxrwxrwx. 1 root root 7 Jun 14 07:35 /dev/oracleoci/oraclevdb1 -> ../sdb1 ★このパーティションが作成 $
追加した Block Device にパーティションが作成されました。
6. ファイルシステム・フォーマット(mkfs) + UUID確認(blkid)
mkfsコマンドでフォーマットして、blkidコマンドで UUID を確認します。UUID は後で fstab に記述します。
sudo mkfs -t xfs /dev/oracleoci/oraclevdb1 blkid /dev/oracleoci/oraclevdb1
実行結果は以下の通りです。
$ sudo mkfs -t xfs /dev/oracleoci/oraclevdb1 meta-data=/dev/oracleoci/oraclevdb1 isize=256 agcount=4, agsize=39256000 blks = sectsz=4096 attr=2, projid32bit=1 = crc=0 finobt=0, sparse=0, rmapbt=0, reflink=0 data = bsize=4096 blocks=157024000, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=76671, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 $ blkid /dev/oracleoci/oraclevdb1 /dev/oracleoci/oraclevdb1: UUID="92bf7e5d-5492-4d7d-8d41-19cf2a87e4c7" TYPE="xfs"
7. マウント用ディレクトリ作成、fstab編集、マウント実行
マウント用のディレクトリを作成して、/etc/fstab にマウント用情報を追記した後にマウントします。
ディレクトリはどこでも良いのですが、/mnt配下に xfs1 というディレクトリを作成します。
cd /mnt sudo mkdir xfs1 sudo vi /etc/fstab cat /etc/fstab
fstab のオプションは Example の記載をそのまま流用します。
# # /etc/fstab # Created by anaconda on Fri Apr 17 01:03:26 2020 : ## Example: ## UUID="94c5aade-8bb1-4d55-ad0c-388bb8aa716a" /data1 xfs defaults,noatime,_netdev 0 2 : UUID="92bf7e5d-5492-4d7d-8d41-19cf2a87e4c7" /mnt/xfs1 xfs defaults,noatime,_netdev 0 2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^これを追記
mountコマンドでマウントして、dfコマンドでファイルシステムとして認識されているか確認します。
sudo mount /mnt/xfs1 df -k
実行結果は以下の通り、上手く行ってますやね!彡(^)(^)
$ sudo mount /mnt/xfs1 $ df -k Filesystem 1K-blocks Used Available Use% Mounted on : /dev/sda3 40223552 2006140 38217412 5% / : /dev/sdb1 627789316 33024 627756292 1% /mnt/xfs1 ★コレ $
念のために Compute を再起動してもマウントされるか確認、大丈夫なもよう彡(゚)(゚)
$ df -k Filesystem 1K-blocks Used Available Use% Mounted on : /dev/sda3 40223552 2009320 38214232 5% / : /dev/sdb1 627789316 33024 627756292 1% /mnt/xfs1 ★コレ : $
opcユーザーで書き込みできるように、chown で owner:group を変更して読み書きしてみます。
sudo chown opc:opc /mnt/xfs1 cd /mnt/xfs1 vmstat 1 > vmstat.log cat vmstat.log procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 7192392 3112 345484 0 0 103 34 74 107 2 1 97 0 0 0 0 0 7192392 3112 345520 0 0 0 0 77 141 0 0 100 0 0 0 0 0 7141820 3112 345520 0 0 0 0 608 416 15 5 81 0 0 0 0 0 7192176 3112 345524 0 0 0 1440 152 196 1 1 99 0 0
読み書きも出来ました。
8. まとめ
Block Volume を Linux Compute に xfsファイルシステムとしてマウントできたで!彡(^)(^)
さて、今度はこれを Terraform & Ansible で IaC化 したいんやけど、ボリュームの接続辺りで OCI CLI が要るんかしら。。。
彡(゚)(゚)