トップ 差分 一覧 Farm ソース 検索 ヘルプ ログイン

3日目:コンテナでミニマムNASを作ってみる

 3日目:コンテナでミニマムNASを作ってみるProxmoxVEを自習しよう

さて、仮想PCの方はHyper-Vからの移行と言う大きな目標を無事に達成出来た
※全てを移行した訳じゃ無いけど手順さえ確立すれば後は同じ事の繰り返しになるので一旦終了

て事で続いては全く未知の分野になるコンテナの作成に入ってみる

ところでコンテナって?

おいらの場合まずここからなのだがw
軽く調べて見ると、このコンテナは何もOSを動かすと言うモノだけでは無く、フレームワークやプログラムと言った物を独立環境下で動かす事が可能だそうだ
しかも環境を問わない、つまりテスト環境で作成してテストしたコンテナをそのまま本番環境に移行して実運用、なんて芸当も可能だとか
これのおかげでシステム開発が劇的に進歩した、と調べた資料にはあった

なので今回やってみる事は正直コンテナでやる意味合いがそれ程大きくは無いっぽいが、まあ初心者の導入編としては判りやすいのかな?と思いつつやって行ってみる

コンテナの作成を開始

さて、ProxmoxVEでコンテナを利用したミニマムNAS(まあ要するにストレージの一部を共有かけると言うだけの話なのだが)の作成だが
手順的には、

  • テンプレートをダウンロード
  • コンテナを作成
  • 作成したコンテナを起動してNASとしての設定(sambaの導入)
  • Windows側から見て見えるかの確認

大まかにこんな形になる

テンプレートのダウンロード

これは予め様々なテンプレが準備されているので、そこから選んでダウンロードするだけのお話だ
※もちろん他の物を導入することも可能だろうが
NASっぽくするという意味合いなら、仮想PCにopenmediavaultを展開する等の方法もあるのだが、今回はコンテナの勉強を兼ねていると言う事でUbuntuを導入しsamba共有をかける、と言う手法を使う事にする

テンプレートの中からUbuntu24.04を選んでダウンロードすると、圧縮された小さなパッケージ?がダウンロードされてくる
これでテンプレートの準備はOK

コンテナの準備

コンテナの準備はVMの時のように画面上のウィザード的な物に沿って行っていく
CPUは1コア、メモリは512M、ストレージは16Gと実に小さく設定
※ストレージ用のエリアは後で別途割り振る
後はLANの割り振りとかを決めればOK
後は起動後にsambaを導入して設定を書き換えるだけ

IPが貰えない・・・?

と言う感じで設定してさあ起動!…としたのだが
起動してもアップデートコマンドがign(ignore)状態になっている、はて…

ネットワークアダプタを眺めてみるとどうもIPを保有していない状態になっている
試しに固定IPを割り振ってみたがそれも上手く行っていない

と言う事で早速のトラブルシューティングと相成った

ネットワーク周りを調べる

  • 1:ホスト側の設定を確認

良く有るのはホスト側のブリッジ設定とかであろうから、と思って調べたが、こちらは問題無し
何なら同じブリッジ設定で仮想PCは普通にIP貰えていたのでここがおかしいとは考えにくい

  • 2:「非特権コンテナ」

コンテナの設定の中に「非特権コンテナ」と言うのがある
セキュリティに絡む部分でこれが設定されているとDHCPクライアントが特権不足で起動しないとからしいのだが、どうせ外(ルーターの外)から見る事は無いしチェックを入れていないのでここも問題無し

  • 3:IPv6の問題

まれにIPv6がIP貰えなくてそれで繋がらないとかあるらしい
のだが試しにIPv6を設定しない状態にしても症状は変わらず

はて…

と思って更に調べていったら

Ubuntuの場合、特権コンテナでもAppArmorの制限に引っかかる、と言うのがあるらしい
と言う事で次の手順で解決を試みる

1:コンソール画面からコンテナを選択して、オプションを選択
2:表示されたオプション画面から「機能」を選択して、表示された項目の中で「ネスト」にチェックを入れる
3:コンテナ再起動

今回はこれで無事にLANがIPを保有するようになった
使用目的を加味して固定IPで運用する事にする

とまあどったんばったんしていたが

ここまでの問題解決はGeminiの手助けを借りて行ったのでした
最近のAI優秀だわ…

samba導入、設定書き換え

て事で本題の共有設定を行う
まずはOSアップデートのいつものおまじない

sudo apt update
sudo apt upgrade -y

次にsambaの導入

sudo apt install samba -y

続いてsamba設定を書き直す
末尾に次の行を挿入する

[Data2_NAS]
  path = /mnt/nas ※実際にコンテナに割り振った名前と同一にする
  browseable = yes
  read only = no
  guest ok = yes
  force user = root

これを保存してサービスを再起動する

systemctl restart smbd

以上で一応の準備が完了する

で、やってみたが…

Windows11側から接続確認をしてみようとすると、ユーザー認証画面は出てくるのだがIDパスが通らない
これは上記設定にあるゲストID、パス無し接続をWindows側で拒否している所に問題が出ている
これを修正する方法としてはWindows側にゲストOKの設定を入れるのもアリだが、むしろホスト側(つまりコンテナ側)にNASアクセス用のアカウントを準備した方が良い

NASアクセス用アカウントの作成

次の手順で行う(仮にnasuserと言うIDで作ると仮定)

  • 1:ユーザーの作成
adduser nasuser ※この後聞かれるパスは何でもOK
smbpasswd -a nasuser
  • 2:samba設定の変更
[Data2_NAS]
  path = /mnt/nas
  browseable = yes
  read only = no
  guest ok = no
  valid users = nasuser
  • 3:ディレクトリの権限変更
  • 4:sambaサービス再起動
systemctl restart smbd

これで無事に認識して、しかも生ストレージにダイレクトアクセス出来る事になりオーバーヘッド無しの転送レートでのファイル共有が出来る様になった