1
2

はじめに

ProxmoxにNASを追加してLVMとして使えるようにしてみましたので、備忘録をかねて書いてみました。

自分はubuntuのミラーサーバを立ててみたいなと思ったときに、ストレージが足りなくなると思ったので追加しました。せっかくなので、最後にミラーサーバの立て方も紹介しているので見ていってください。

手順

NAS側の設定

NASはSynologyのDS220jを使用しています。

まずは、iSCSIの場所をつくっていきます。
SynologyのDSMからSAN Managerを起動します。

SAN Manager > iSCSI > 作成
スクリーンショット 2024-07-01 140732.png

作成ボタンを押して適当にポチポチしていってください。(名前と容量以外はデフォルトで大丈夫だと思います。)

スクリーンショット 2024-07-01 202149.png

こんな感じでできると思いますので、Proxmoxに追加したいと思います。
(あとで使うので、IQNは覚えといてください。)

では、いよいよProxmoxに追加していきます。

複数ノードで使用する場合は、作ったiSCSIストレージの編集から赤で囲った場所を許可してください。
スクリーンショット 2024-07-01 202523.png

Proxmoxのフォーラムにも上がっていますが、SynologyのNASを接続するとProxmoxのコントロールパネルのグラフが表示されなくなることがあります。(自分もなりました。)そのために、SynologyのIPv6を無効にするなどしておいた方がいいかもしれません。
詳細はフォーラムを見てみてください。(うんちゃまさんのTwitterで一番最初に見つかりました、ありがとうございました。)

ちなみに、DMS > コントロールパネル > ネットワーク > ネットワークインターフェース の編集でIPv6を無効にしたら自分は解決しました。

Proxmox側の設定

まず、すべてのノードにopen-iscsiをインストールします。

 apt-get install open-iscsi

データセンター > ストレージ > 追加 > iSCSIを選択してください。
スクリーンショット 2024-07-01 135607.png 

IDは任意のID を、PortalにはNASのIPアドレスを、ターゲットは先ほど覚えたIQNが選択されていることを確認して、LUNsを直接使用のチェックを外して追加してください。
スクリーンショット 2024-07-01 203233.png

ここで無事接続されるとSAN Manager > iSCSIで以下の画像のようになって黄色の部分にProxmoxのノードのIPアドレスが表示されていると思います。
スクリーンショット 2024-07-02 015600.png

次に、追加したiSCSI上にLVMを作成します。(iSCSIを直接使っている記事もありましたが、公式がLVMを勧めていたので、それに合わせます。)

データセンター > ストレージ > 追加 > LVMを選択してください。
スクリーンショット 2024-07-02 004404.png

IDは任意のIDを、ベースモジュールは先ほど追加したiSCSIを選択、ベースボリュームは1つしかないと思うのでそれを選択、ボリュームグループは任意のモジュールグループを指定して追加してください。
image.png

これで、今後は普通にVMを作成する際のディスクの指定で今作成したLVMを指定すると使えます。
image.png

自分の使い方の紹介:ミラーサーバの立て方

まず、ストレージを多めにVMを作成してubuntuをインストールします。(お好きなように設定してください。)

ストレージの設定の一例

ストレージの設定もいろいろあるので何でもいいですが、一番説明しやすいものを紹介しておきます。(若干ないように自信がないです。)

ubuntuのインストールの時のストレージの設定で、
Storage Configuration > DEVICE > free spaceを選択して
スクリーンショット 2024-07-02 011715.png
マウント先を /var/spool/apt-mirror にしてください。
スクリーンショット 2024-07-02 011831.png
結果。
スクリーンショット 2024-07-02 011845.png

まず、NGINXをインストールします。(好みでNGINXを使っていますが、Apacheでも何でもいいです。)

# apt-get update
# apt-get install nginx

設定ファイルを作成します。

/etc/nginx/sites-available/mirror.conf
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を参考にするなり、理研などを使わせていただくのでも...)
自分の設定ファイルは以下の通りです。

/etc/apt/mirror.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を設定(コメントアウト)して準備は完了です、

/etc/cron.d/apt-mirror
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があるのであればそんなに負担にもならないと思います。

実際メリットあるかと聞かれると、「まぁ、家に帰ればミラーサーバあるしな」の生ハムの原木の話しかないと思いますが、ぜひ一家に一台立ててみてもいいのではないでしょうか(笑)

参考にさせていただいたサイト

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2