はじめに
ProxmoxにNASを追加してLVMとして使えるようにしてみましたので、備忘録をかねて書いてみました。
自分はubuntuのミラーサーバを立ててみたいなと思ったときに、ストレージが足りなくなると思ったので追加しました。せっかくなので、最後にミラーサーバの立て方も紹介しているので見ていってください。
手順
NAS側の設定
NASはSynologyのDS220jを使用しています。
まずは、iSCSIの場所をつくっていきます。
SynologyのDSMからSAN Managerを起動します。
作成ボタンを押して適当にポチポチしていってください。(名前と容量以外はデフォルトで大丈夫だと思います。)
こんな感じでできると思いますので、Proxmoxに追加したいと思います。
(あとで使うので、IQNは覚えといてください。)
では、いよいよProxmoxに追加していきます。
Proxmoxのフォーラムにも上がっていますが、SynologyのNASを接続するとProxmoxのコントロールパネルのグラフが表示されなくなることがあります。(自分もなりました。)そのために、SynologyのIPv6を無効にするなどしておいた方がいいかもしれません。
詳細はフォーラムを見てみてください。(うんちゃまさんのTwitterで一番最初に見つかりました、ありがとうございました。)
ちなみに、DMS > コントロールパネル > ネットワーク > ネットワークインターフェース の編集でIPv6を無効にしたら自分は解決しました。
Proxmox側の設定
まず、すべてのノードにopen-iscsiをインストールします。
apt-get install open-iscsi
データセンター > ストレージ > 追加 > iSCSIを選択してください。
IDは任意のID を、PortalにはNASのIPアドレスを、ターゲットは先ほど覚えたIQNが選択されていることを確認して、LUNsを直接使用のチェックを外して追加してください。
ここで無事接続されるとSAN Manager > iSCSIで以下の画像のようになって黄色の部分にProxmoxのノードのIPアドレスが表示されていると思います。
次に、追加したiSCSI上にLVMを作成します。(iSCSIを直接使っている記事もありましたが、公式がLVMを勧めていたので、それに合わせます。)
データセンター > ストレージ > 追加 > LVMを選択してください。
IDは任意のIDを、ベースモジュールは先ほど追加したiSCSIを選択、ベースボリュームは1つしかないと思うのでそれを選択、ボリュームグループは任意のモジュールグループを指定して追加してください。
これで、今後は普通にVMを作成する際のディスクの指定で今作成したLVMを指定すると使えます。
自分の使い方の紹介:ミラーサーバの立て方
まず、ストレージを多めにVMを作成してubuntuをインストールします。(お好きなように設定してください。)
ストレージの設定の一例
ストレージの設定もいろいろあるので何でもいいですが、一番説明しやすいものを紹介しておきます。(若干ないように自信がないです。)
ubuntuのインストールの時のストレージの設定で、
Storage Configuration > DEVICE > free spaceを選択して
マウント先を /var/spool/apt-mirror
にしてください。
結果。
まず、NGINXをインストールします。(好みでNGINXを使っていますが、Apacheでも何でもいいです。)
# apt-get update
# apt-get install nginx
設定ファイルを作成します。
server {
listen 80;
server_name サーバ名;
location /ubuntu {
alias /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/;
autoindex on;
}
}
設定を反映
# ln -s /etc/nginx/sites-available/mirror.conf /etc/nginx/sites-enabled/mirror.conf
# systemctl restart nginx.service
本題、apt-mirrorをインストールしていく。
# apt update
# apt install apt-mirror bzip2
本来はこれでいいのだが、@を含むデータでエラーが発生するとかいう問題があるらしいので、GitHubから拾ってくる。
$ git clone https://github.com/apt-mirror/apt-mirror.git
Cloning into 'apt-mirror'...
remote: Enumerating objects: 494, done.
remote: Counting objects: 100% (191/191), done.
remote: Compressing objects: 100% (59/59), done.
remote: Total 494 (delta 156), reused 157 (delta 132), pack-reused 303
Receiving objects: 100% (494/494), 160.57 KiB | 6.42 MiB/s, done.
Resolving deltas: 100% (274/274), done.
GitHubからのものを元のと置き換える
# mv /usr/bin/apt-mirror /usr/bin/apt-mirror.ori # 元のファイルを避難
# cp apt-mirror/apt-mirror /usr/bin/ # 移動
# chown root:root /usr/bin/apt-mirror # 権限を変更
設定ファイルをいじっていく。
(ミラー先は/etc/apt/sources.list
を参考にするなり、理研などを使わせていただくのでも...)
自分の設定ファイルは以下の通りです。
############# config ##################
#
# set base_path /var/spool/apt-mirror
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
#set nthreads 20
set nthreads 8 # 適宜変更
set _tilde 0
#
############# end config ##############
deb http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse
deb-i386 http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
deb-i386 http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu jammy-security main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu jammy-proposed main restricted universe multiverse
#deb-src http://archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse
clean http://archive.ubuntu.com/ubuntu
このまま実行すると最後に/var/spool/apt-mirror/var/postmirror.sh
に関するエラーが発生しますが、特に実害がないです(笑)が、GitHubのコードをコピペしたら解決します。
最後に、勝手に更新されるようにcronを設定(コメントアウト)して準備は完了です、
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
あとは、最初のダウンロードをすれば完成です。(結構時間かかります。)
$ sudo -u apt-mirror apt-mirror
Downloading 15 release files using 8 threads...
~~~以下省略~~~
案外簡単にミラーサーバが立てられたと思います。自分の設定だと463GB程度使っています。NASがあるのであればそんなに負担にもならないと思います。
実際メリットあるかと聞かれると、「まぁ、家に帰ればミラーサーバあるしな」の生ハムの原木の話しかないと思いますが、ぜひ一家に一台立ててみてもいいのではないでしょうか(笑)