1時間200円の動画編集環境(NVMe SSD活用編)

DaVinci Resolve用に構築したAWS上のEC2インスタンスのNVMe SSDを、DaVinci ResolveプロジェクトのProxyやキャッシュ置き場として使えるようセットアップする。

NVMe SSD

g4dnインスタンスは、ルートボリューム用のEBSとは別にNVMe SSDが無料で利用できる。ただし、

  • 起動時に自動的にマウントされない
  • 停止時にファイルシステムごとデータが消去される
  • (停止ではなく)リブート時はマウントは解除されるが、データは消去されない

といった特徴があるので、これらを踏まえてセットアップする。

systemdサービスの登録

Amazon Linux 2の初期化プロセスはsystemdが管理しているので、NVMe SSDの初期化・マウント処理をsystemdサービスとして登録しておく。

mount-nvmessd.sh

/etc/systemd/scripts/mount-nvmessd.shを以下の内容で作成し、実行権限を付与しておく(chmod +x mount-nvmessd.sh)。なお、NVMe SSDのマウント先は/data、DaVinci Resolveを使うec2-user用のディレクトリを/data/ec2-userとした。

#!/bin/bash

NVME_SSD=/dev/nvme1n1
FS_TYPE=`lsblk -nf $NVME_SSD | awk -t '{print $2}'`
if [ "$FS_TYPE" != "xfs" ]; then
       mkfs -t xfs $NVME_SSD
       mkdir -p /data
       mount $NVME_SSD /data
       mkdir -p /data/ec2-user
       chown ec2-user.ec2-user /data/ec2-user
else
       mount $NVME_SSD /data
fi

mount-nvmessd.service

/etc/systemd/system/mount-nvmessd.serviceを以下の内容で作成する。

[Unit]
Description=Mount NVMe SSD
After=network-online.target

[Service]
Type=oneshot
ExecStart=/etc/systemd/scripts/mount-nvmessd.sh
RemainAfterExit=yes

[Install]
WantedBy=graphical.target

サービスの有効化と実行

以下のコマンドにて、先ほど作成したサービスを有効化の上実行する。

$ sudo systemctl daemon-reload
$ sudo systemctl enable mount-nvmessd.service
$ sudo systemctl start mount-nvmessd.service

サービスのステータスを確認すると、問題なく実行されたようだ。

$ systemctl status mount-nvmessd.service
● mount-nvmessd.service - Mount NVMe SSD
   Loaded: loaded (/etc/systemd/system/mount-nvmessd.service; enabled; vendor preset: disabled)
   Active: active (exited) since Tue 2022-03-08 13:23:10 UTC; 13min ago
  Process: 2789 ExecStart=/etc/systemd/scripts/mount-nvmessd.sh (code=exited, status=0/SUCCESS)
 Main PID: 2789 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/mount-nvmessd.service

DaVinci Resolveプロジェクト

プロジェクトの設定を開き「Master Settings - Working Folders」の「Proxy generation location」と「Cache files location」をそれぞれ/data/ec2-user配下のディレクトリへ変更しておく(これらのディレクトリは存在しなければ自動的に作成される)。 f:id:davmemos:20220308225116p:plain