第732回ではDeskMeetをNASにするためのパーツ選定が終わったので、いよいよ組み立ててUbuntuをインストールし、LVMでRAIDを組みます。
組み立て
組み立ては、次の順番で行いました。
- CPUの取り付け
- CPUファンとIFE2の取り付け
- メモリーの取り付け
- SSDの取り付け
- 電源の取り付け
1と2に関してはマニュアルに従えば特に難しいところはないでしょう。CPUは、いわゆるスッポン[1]を防止するためにIFE2を取り付けています。
3のメモリーの取り付けは、取り付ける場所を考慮する必要があります。マニュアルによると1枚差しの場合はB2、すなわちCPUから一番遠いスロットに挿します。4つもスロットがあるのに1枚しか挿さないのはもったいないので、4GB*2を接続するのが理想的です。
4のSSD取り付けは、小さいネジを使用するため難易度が高いです。何かもう少し楽に取り付けられるような工夫があるといいのですが。
図1がCPU
5の電源はマニュアルを読むと事前に小さいネジを付けると記載されていますが、筆者は無視してネジ3つで留めました。この辺にズボラなところが出てきてしまっています。
懸念のCPUクーラーと電源の隙間ですが、本当にギリギリで収まっています
UEFI BIOS
基本的なパーツを組み上げたら、電源を入れてUEFI BIOSが起動するか確認してください。
問題なく起動したら、UEFI Versionがいくつか確認しましょう
アップデートの前にfTPMをdisabledにする必要があります
Ubuntu ServerではTPMを使うところがないので、オフのままでも差し支えありません。
Ubuntu Serverのインストール
Ubuntu Serverのインストールは、基本的にはデフォルトのままの設定でいいでしょう。
ルートパーティションをLVMにするかは好みに応じて決定してください。個人的にはデータ用HDDを別途用意するのであればLVMは不要だと考えます。またNextcloudサーバーをインストールするかどうかも好みに応じて決定してください。今回この時点ではインストールしません。
インストール完了後、何はなくともavahi-daemonパッケージをインストールします。NASには必須のパッケージです。今どきmDNSでの名前解決はWindowsでも使えます。
ECCメモリーの動作確認
ECCが正しく動作しているか気になるところです。確認方法はいくつかありますが、次のコマンドを実行するのが簡単です。
$ sudo dmidecode -t memory|grep -i error Error Correction Type: Multi-bit ECC Error Information Handle: 0x000D Error Information Handle: 0x0014 Error Information Handle: 0x0016 Error Information Handle: 0x0018 Error Information Handle: 0x001A
ECCありの場合は上記のような表示を確認できます。
なおECCなしの場合は次のような表示となり、ECCが動作していないことがわかります。
$ sudo dmidecode -t memory|grep -i error Error Correction Type: None Error Information Handle: 0x000A Error Information Handle: 0x0011 Error Information Handle: 0x0013 Error Information Handle: 0x0016 Error Information Handle: 0x0018
HDD2台の取り付け
HDD2台の取り付けは、マニュアルに従って行えば特に難しいところはないでしょう。
LVMでHDDのセットアップ
取り付けたHDDはフォーマットし、LVMでRAIDを組みます。
まずは、何はなくとも現在の状態を確認してください。次のコマンドを実行してください。
$ sudo parted -l Model: ATA ST8000VN0022-2EL (scsi) Disk /dev/sda: 8002GB Sector size (logical/physical): 512B/4096B Partition Table: loop Disk Flags: Number Start End Size File system Flags 1 0.00B 8002GB 8002GB Model: ATA ST8000VN004-2M21 (scsi) Disk /dev/sdb: 8002GB Sector size (logical/physical): 512B/4096B Partition Table: loop Disk Flags: Number Start End Size File system Flags 1 0.00B 8002GB 8002GB Model: WDC WDS100T2B0C-00PXH0 (nvme) Disk /dev/nvme0n1: 1000GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 1128MB 1127MB fat32 boot, esp 2 1128MB 1000GB 999GB ext4
通常増設したHDDは/dev/
続けて次のコマンドを入力し、/dev/
$ sudo parted /dev/sda GNU Parted 3.4 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel gpt #入力項目 Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? y #入力項目 (parted) mkpart #入力項目 Partition name? []? File system type? [ext2]? ext4 #入力項目 Start? 0% #入力項目 End? 100% #入力項目 (parted) set 1 lvm on #入力項目 (parted) p #入力項目 Model: ATA ST8000VN0022-2EL (scsi) Disk /dev/sda: 8002GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 8002GB 8002GB ext4 lvm
なお上記で
同じことを/dev/
パーティションの作成ができたところで、いよいよLVMを設定していきます。LVMは物理ボリューム
$ sudo pvcreate /dev/sda1 $ sudo pvcreate /dev/sdb1 $ sudo vgcreate nas /dev/sda1 /dev/sdb1 $ sudo lvcreate --type raid1 -l 100%VG -n lvnas nas
これによって/dev/
この状態で論理ボリュームを確認するコマンドを実行してみます。
$ sudo lvdisplay --- Logical volume --- LV Path /dev/nas/lvnas LV Name lvnas VG Name nas LV UUID lOzJvL-HjgL-1XeN-QIsU-IP1p-4Z2a-jP3YSe LV Write Access read/write LV Creation host, time deskmeetx300, 2022-10-01 13:57:21 +0000 LV Status available # open 0 LV Size <7.28 TiB Current LE 1907719 Mirrored volumes 2 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4
/dev/
$ sudo mkfs.ext4 /dev/nas/lvnas
/media/
$ sudo mkdir /media/nasdrive $ sudo sh -c "echo /dev/nas/lvnas /media/nasdrive ext4 defaults 0 0 >>/etc/fstab" $ sudo mount -a
mountコマンドで実際にマウントされているか確認してください。
Nextcloudのセットアップ
NASで使用するサーバーといえばSambaですが、第703回でも取り上げたようにNextcloudをNASで動作させるのも悪くない選択です
SambaにせよNextcloudにせよその他にせよ、セットアップや設定方法はいくらでも他で解説されているため省略します。
NICをどうするか(ふたたび)
第732回でも紹介したように、DeskMeetのNICはGbEで、NASとして使用するには今となっては充分な速度とはいえません。
普通に考えればPCI Expressスロットに空きがあるため、ここにNICを増設することになります。しかしGPE-2500Tを増設した場合にHDDとの隙間があまりありません
これを問題ないと判断するか、近すぎると判断するかは難しいところです。HDDと近すぎることによって熱の影響を受ける可能性はあるものの、RTL8125Bはそもそも発熱があまりないNICです。それでも怖いというのであればAS-U2.
GPE-2500Tを接続した場合はNICのポートが2つになりますが、実際にGPE-2500Tを接続したあとに、どちらのポートにもLANケーブルを接続してみてもIPアドレスを取得しなかったので焦りました。
ネットワークの設定が書かれている/etc/
This is the network config written by 'subiquity'
network:
ethernets:
enp2s0:
dhcp4: true
version: 2
さらにip a
コマンドを実行してみると、次のような結果が返ってきました。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether 88:c9:b3:b0:65:cc brd ff:ff:ff:ff:ff:ff inet6 fe80::8ac9:b3ff:feb0:65cc/64 scope link valid_lft forever preferred_lft forever 3: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether a8:a1:59:af:64:76 brd ff:ff:ff:ff:ff:ff
つまりenp2s0がなくなり、enp1s0とenp3s0になっていたのが原因とわかります。
そこで、/etc/
# This is the network config written by 'subiquity'
network:
ethernets:
enp1s0:
dhcp4: true
enp3s0:
dhcp4: true
version: 2
そしてこの変更を次のコマンドで適用します。
$ sudo netplan try
しばらく待っていると変更が適用されます。適用後LANケーブルを接続するとIPアドレスが取得できました。