ストレージ構想
Created: 2023/08/05
概要
仮想マシン周りでストレージを共有したりバックアップの仕組みをファイルサーバーに集約したい。
TrueNAS
- 各仮想マシンのDBなどはここに集約したい
- 使用できるプロトコルは
- SMB
- NFS
https://milestone-of-se.nesuke.com/sv-advanced/file-server/nfs-cifs-smb-summary/
- サーバーの設定に必要なデータと、アプリケーションが利用するデータベースの2種
- 案1: AppごとにNFS分離
- ex. misskey
- /misskey/data, /misskey/app
- ex. misskey
- 案2: DB系とApp系で分離
- ex. /data/misskey, /app/misskey
実際はAppのデータはgitで管理したいことが多い気がする 設定とか飛びそうでこわいし・・・
柔軟なのはAppごと分離するやつかも
スナップショット取りづらいけどいっか・・・
ZFS Snapshot
https://www.truenas.com/docs/scale/scaletutorials/storage/datasets/creatingsnapshots/
データベースもスナップショットで管理できたらいいんでねって
- 問題
- DBロックしてから(flush?)スナップショットがいいかも
- いろんなデータベース使いたい・・・
→ フルバックアップをn世代残してそれ以上はスナップショットにする
docker compose volumeでNFSをマウントしたいとき
usecase: misskey postage DBのデータをファイルサーバーに置きたい
docker compose ファイル
docker-compose.ymlにて、volumeをマウントする
volumes:
db_volume:
driver_opts:
type: nfs
o: "addr=192.168.10.100,hard,rw"
device: ":/mnt/tank/services/misskey/db"
services:
db:
volumes:
- db_volume:/var/lib/postgresql/data
# 略
NFSサーバーの設定
権限周りで怒られる事がある。あまり良くわかっていない・・・
kokshi@vmdev1:/mnt/misskey$ sudo docker compose up -d db
[+] Running 3/4
✔ Network misskey_default Created 0.1s
✔ Volume "misskey_db_volume" Created 0.0s
✔ Volume "misskey_redis_volume" Created 0.0s
⠋ Container misskey-db-1 Creating 0.0s
Error response from daemon: failed to chmod on /var/lib/docker/volumes/misskey_db_volume/_data: chmod /var/lib/docker/volumes/misskey_db_volume/_data: operation not permitted
Maproot Userにルートを指定する。
