2023-04-20
前回の記事
【Amazon/AWS】NVMe SSD仕様のコンピューティング最適化(c6gd)・メモリ最適化(r6gd)インスタンスを作成するには
にて、OSにArmのDebianを選んでメモリ最適化インスタンスr6gd.xlargeを起動した。
Debian仮想マシンに初回ログインするには、ユーザー名を「admin」とし登録したSSHキーでログインする。
さて、
https://aws.amazon.com/jp/ec2/instance-types/
にあるとおり、r6gd.xlargeインスタンスには237GBのNVMe SSDが付属する。
しかしながら、ログインしてdfしてみたところ、そのようなディスクはマウントされていない。
df -h Filesystem Size Used Avail Use% Mounted on udev 16G 0 16G 0% /dev tmpfs 3.2G 8.4M 3.2G 1% /run /dev/nvme0n1p1 492G 885M 472G 1% / tmpfs 16G 0 16G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/nvme0n1p15 127M 140K 127M 1% /boot/efi tmpfs 3.2G 0 3.2G 0% /run/user/1000
あるのは、インスタンス作成時に強制作成させられるルートボリューム(EBS)だけである。
(ルートボリュームEBSもnvmeと出ていて紛らわしいが、付属する237GBのNVMe SSDではない)
そもそも、作成時、237GBのNVMe SSDをルートボリュームに選択することはできず、EBSボリュームを作らされた。
つまり、付属のNVMe SSDを使うには自分でフォーマット&マウントする必要がある。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ebs-using-volumes.html
に、すべて説明が載っているが、今回Debianなのでext4で付属NVMeのマウントを試みる。
ここから先はすべてスーパーユーザで行う。いちいち1コマンドごとにsudoなどしないでsudo -sでrootになってしまったほうがいい。
1、まずは237GBのNVMe SSDが存在しているか確認する
lsblk、lsblk -f と打ってみる。
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 500G 0 disk tqnvme0n1p1 259:4 0 499.9G 0 part / mqnvme0n1p15 259:5 0 127M 0 part /boot/efi nvme1n1 259:3 0 220.7G 0 disk lsblk -f NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT nvme0n1 tqnvme0n1p1 ext4 50a04f92-304f-42e8-81c2-7f0fd039727a 471G 0% / mqnvme0n1p15 vfat C839-1D94 126.6M 0% /boot/efi nvme1n1
nvme1n1/220.7Gを発見。これだ。これが付属するNVMe SSDで、どこにもマウントされていない。
であれば、これをフォーマット&マウントしてしまえばいい。
/dev/nvm以下のデバイスがあるかどうか確認する。
ls -alF /dev/nvm* crw------- 1 root root 241, 0 Apr 20 06:52 /dev/nvme0 brw-rw---- 1 root disk 259, 0 Apr 20 06:52 /dev/nvme0n1 brw-rw---- 1 root disk 259, 4 Apr 20 06:52 /dev/nvme0n1p1 brw-rw---- 1 root disk 259, 5 Apr 20 06:52 /dev/nvme0n1p15 crw------- 1 root root 241, 1 Apr 20 06:52 /dev/nvme1 brw-rw---- 1 root disk 259, 3 Apr 20 06:52 /dev/nvme1n1
2、フォーマット&マウントする
ターゲットは/dev/nvme1n1であることが判明したので、mkfs, mountすればいい。
上記Amazonのドキュメントにはxfsでフォーマットする例が出ているが、Debianなので今回はext4でフォーマットする。
file -s /dev/nvme1n1 /dev/nvme1n1: data mkfs -t ext4 /dev/nvme1n1 mke2fs 1.44.5 (15-Dec-2018) Discarding device blocks: done Creating filesystem with 57861328 4k blocks and 14467072 inodes Filesystem UUID: 1363ebed-011e-4dd8-a666-ee60e369f727 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 (262144 blocks): done Writing superblocks and filesystem accounting information: done file -s /dev/nvme1n1 /dev/nvme1n1: Linux rev 1.0 ext4 filesystem data, UUID=1363ebed-011e-4dd8-a666-ee60e369f727 (extents) (64bit) (large files) (huge files) fdisk -l Disk /dev/nvme0n1: 500 GiB, 536870912000 bytes, 1048576000 sectors Disk model: Amazon Elastic Block Store Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 9333AC37-3F82-C142-A1B8-7CE37CFC054B Device Start End Sectors Size Type /dev/nvme0n1p1 262144 1048575966 1048313823 499.9G Linux filesystem /dev/nvme0n1p15 2048 262143 260096 127M EFI System Partition table entries are not in disk order. Disk /dev/nvme1n1: 220.7 GiB, 237000000000 bytes, 462890625 sectors Disk model: Amazon EC2 NVMe Instance Storage Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
mkfs後、file、fdiskコマンドで無事ext4としてフォーマット完了していることを確認。
あとは以下で手動マウント(ここでは/diskとしてマウント)
cd / mkdir disk mount /dev/nvme1n1 /disk df -h Filesystem Size Used Avail Use% Mounted on udev 16G 0 16G 0% /dev tmpfs 3.2G 8.4M 3.2G 1% /run /dev/nvme0n1p1 492G 885M 472G 1% / tmpfs 16G 0 16G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/nvme0n1p15 127M 140K 127M 1% /boot/efi tmpfs 3.2G 0 3.2G 0% /run/user/1000 /dev/nvme1n1 217G 61M 206G 1% /disk
/diskにマウントして、晴れて付属のNVMe SSD 237Gが使えるようになった。
3、起動時に自動マウントさせる
/etc/fstabに起動コマンドを書いて、起動時に自動でマウントさせる。
※自己責任注意※/etc/fstabの記述が間違っていると起動に失敗しマシンに一生ログインできなくなる可能性あり。
/etcをバックアップしておく
cd / cp -Rp etc etc.default
blkidコマンドで対象ディスクのUUIDを取得する
blkid /dev/nvme0n1: PTUUID="9333ac37-3f82-c142-a1b8-7ce37cfc054b" PTTYPE="gpt" /dev/nvme0n1p1: UUID="50a04f92-304f-42e8-81c2-7f0fd039727a" TYPE="ext4" PARTUUID="daa5ac51-f67f-d44c-aa86-26c8646e8781" /dev/nvme0n1p15: SEC_TYPE="msdos" UUID="C839-1D94" TYPE="vfat" PARTUUID="4389cbe0-c621-d244-9320-5e45ef2249ea" /dev/nvme1n1: UUID="1363ebed-011e-4dd8-a666-ee60e369f727" TYPE="ext4"
nvme1n1の1363ebed-011e-4dd8-a666-ee60e369f727をコピーする。
fstabの最後に行を足して編集する
vi /etc/fstab # /etc/fstab: static file system information UUID=50a04f92-304f-42e8-81c2-7f0fd039727a / ext4 rw,discard,errors=remount-ro,x-systemd.growfs 0 1 UUID=C839-1D94 /boot/efi vfat defaults 0 0 UUID=1363ebed-011e-4dd8-a666-ee60e369f727 /disk ext4 defaults,nofail 0 2
最後の行が、追加編集した、/diskに起動時nvme1n1をマウントする設定。
確認のため、いったん/diskをアンマウントしてマウントし直す
umount /disk mount -a
エラーが出ず、dfでディスクマウントを確認できれば、fstabにエラーは無いはずで、再起動しても問題なく自動マウントされるはずである。ただしあくまで※自己責任注意※
※追記※付属するNVMe SSDはインスタンスストア=揮発性ストレージであり、マシンを「停止(halt)」すると中のデータはもちろんファイルシステムすらすべて消えてしまい、再び最初からフォーマット&マウント作業が必要になります。頻繁に停止するマシン用途には向かず、一時ファイル置き場としての用途が強いです。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Python】Spacyを使用して文章から出発地と目的地を抜き出す
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
Windows版Google Driveが使用中と言われアンインストールできない場合
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
【Apache】サーバーに同時接続可能なクライアント数を調整する
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【Linux】iconv/libiconvをソースコードからインストール
Ubuntu Server 21.10でイーサリアムブロックチェーン【その5】