0
0

能書き

私的サーバー構築日誌:仕切り直しからの自宅サーバー構築の続きです。

かつて名機として名を馳せた、古い古い機種であるN54L。化石のようなマシンですが、我が家ではまだ現役です。FreeNAS9.3を入れたままアップグレードもせずにずっと放置してましたが、この度Ubuntuを導入しようと思い立ちました。

機種名ですが。私は「NL54L」だと思ってたんですが、ぐぐると「N54L」としている記事ばかりですね。私の記憶違いかなぁ。と言う訳で「N54L」と表記しておきます。

目標

  • HP MicroServer N54L に Ubuntu を導入
    • バージョンは最新LTSの Ubuntu 24.04
  • ZFSである事を活かして、ストレージはUbuntu導入後に zpool import して使い回す

参考文献

インストールの準備

バックアップ

バックアップ大事。超大事。

私は4TBのHDDを買いまして、USBで外付けして、sshで接続して、/tank以下を全部cp -R -pしました。

どうもrsyncコマンドだと、サブディレクトリの認識が怪しくなって、全ファイルのコピーが上手くいかなかったのです。状況把握とか原因追及とかやってるよりもcp -Rしちゃった方が早いと判断しました。

この辺の誤作動がOS変更の大きな理由です。どうせ変えるなら、FreeNAS後継のTrueNASにするよりも、使い慣れたUbuntuにしようと考えたのでした。

OpenZFSを入れるならBSD系OSの方が筋が良いのはわかってます。しかし私はLinuxが好きなのです。

インストーラ

Ubuntuのインストーラはこちら。サーバー用途なのでDesktopではなくてUbuntuServerです。今のLTSの最新バージョンは24.04のようですので、それをダウンロード。

USBメモリへインストールするので Root on ZFS にはしません。その為、この辺の選択は素直に行く方針です。

ダウンロードしたらUSBメモリに焼きます。私は普段使いのWin10マシンでRufusというツールを使いました。画面については以前と変わってないようですな。画面のキャプチャは省略します。

zpool export

ストレージを確認。

zpool list

私の現状ではこうなっています。

# zpool list                                                                                                          
NAME           SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT                                                   
extra1        3.62T  1.83T  1.80T         -    26%    50%  1.00x  ONLINE  -                                                         
freenas-boot  7.19G   534M  6.67G         -      -     7%  1.00x  ONLINE  -                                                         
tank          2.26T  1.32T   960G         -    37%    58%  1.00x  ONLINE  /mnt

extra1は、先程のバックアップ先のストレージです。これをzpool exportします。

zpool export extra1

メインのストレージtankzpool exportしたら、なぜかエラーが。

# zpool export tank                        
cannot unmount '/var/db/system/syslog-5ece5c906a8f4df886779fae5cade8a5': Device busy

もしかしたら、昔、jailか何かでDBを起動してたかも知れません。しかしメニュー上でjailを選択しても何も表示されないんですよね。これ以上は調べるのも面倒なので、そのまま放置します。褒められたやり方ではありませんが。

電源OFFなど

  • シャットダウンして、電源が落ちた事を目視確認
  • バックアップ先ストレージであるUSB接続HDDを外す
  • インストーラを入れたUSBメモリを挿す

さあここからです。

インストール

Ubuntu

電源を入れてUbuntu 24.04 LTSのインストーラを起動。画面の表示に誘導されて操作を進めます。

  • 言語はEnglish((UK)の付いていない方)
  • キーボードは、Layout・Variantの両方ともJapanese
  • Ubuntu Server((minimized)ではない方)を選択
    • Additional options(サードパーティドライバー)は選択しない
  • IPアドレスはManual、我が家のIPアドレス設定に従って下記のようにする
    • Subnet: 172.16.0.0/16
    • Address: 172.16.1.3
    • Gateway: 172.16.2.1
    • Name servers: 172.16.1.2
    • Search domains: home
  • Proxy address: (空欄)
  • Mirror address: (デフォルトのまま)
  • Use an entire disk →慎重に、内部に挿してあるUSBメモリを選択(SIZEで判断)
  • Confirm destructive action →Continue
  • ログイン名など →読者各位の設定でよろしく
  • Upgrade to Ubuntu Pro → Skip for now
  • Install OpenSSH Server →チェック
    • Import SSH key →後程設定する事にして、今は何もしない
  • Featured server snaps →dockerなどもあって気になるが、必要に応じて後程設定する事にして、今は何も選択しない

40分くらい時間が掛かりましたが、インストール処理が完了すると画面下部に[ Reboot Now ]が表示されるので、選択してサーバーを再起動します。画面に従ってインストーラを入れたUSBメモリを外してENTERキーを押します。

再起動したら、手元のWindowsマシンでsshコマンドを使ってログインできます。SSH keyを設定してないのでパスワードログインです。

ログインできたら、まずはタイムゾーンを設定しましょう。

sudo timedatectl set-timezone Asia/Tokyo

dateコマンドで時刻を表示して確認します。

date

swapファイルが存在しない事を確認。下記コマンドで何も表示されなければOKです。

swapon -s

OpenZFS

インストール

いよいよOpenZFSのインストールです。

sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu noble main universe'
sudo apt update
sudo apt install -y zfsutils-linux

ストレージのimport

まずはimport対象のストレージを確認します。

sudo zpool import

今回はこんな表示になりました。

$ sudo zpool import
   pool: tank
     id: 2891006712653798077
  state: ONLINE
status: The pool was last accessed by another system.
 action: The pool can be imported using its name or numeric identifier and
        the '-f' flag.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
 config:

        tank        ONLINE
          raidz2-0  ONLINE
            sdb     ONLINE
            sdc     ONLINE
            sdd     ONLINE
            sda     ONLINE
            sde     ONLINE

zpool importに当たっては-fオプションを指定します。zpool exportしていなかったので。

またマウント先は/mnt/tankにしたいので、そのように指定します。

sudo zpool import -R /mnt -f tank

確認しましょう。zpool listは一般ユーザーでも実行できます。

zpool list

結果はこんな感じになりました。

$ zpool list
NAME   SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
tank  2.26T  1.32T   960G        -        8G    37%    58%  1.00x    ONLINE  -

確認。

ls -dl /mnt/tank

上手くいったようです。

$ ls -dl /mnt/tank
drwxr-xr-x 15 root root 15 May 12  2019 /mnt/tank

Scrub

OpenZFSのドキュメントの日本語訳によれば:

スクラブは指定されたプール内のすべてのデータを調べて、チェックサムが正しいことを確認します。

…だそうです。
あんまり頻度が高いとかえってHDDの寿命を縮める事になりますので、今回は毎月1回にしておきます。

systemd を使用するマシンでは、スクラブ タイマーをプールごとに有効にすることができます。

と言う訳で便利なコマンドが提供されるようですので、設定してみます。

sudo systemctl enable zfs-scrub-monthly@tank.timer --now 

なお、すぐにスクラブしたい場合は下記コマンドです。

sudo zpool scrub tank

進行状況を表示するのは下記コマンドです。sudoは要らないようです。

zpool status

こうなりました。scan:の行に進行状況が表示されてますね。

$ zpool status
  pool: tank
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
        The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(7) for details.
  scan: scrub in progress since Thu Jun 20 18:31:21 2024
        4.65G / 1.32T scanned at 176M/s, 0B / 1.32T issued
        0B repaired, 0.00% done, no estimated completion time
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sda     ONLINE       0     0     0
            sde     ONLINE       0     0     0

errors: No known data errors

仕舞い

これで、我が家のNASのOSをLinuxの最新版に置き換えられました。

結果としてバックアップは使用せずに済みましたが。バックアップ大事。超大事。

次はSambaを入れてWindowsからの共有を復活させる所ですが、それは稿を改めます。

0
0
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
0
0