839の日記

趣味の話を書くブログです。

UGREEN NASync DXP4800 Plusに別OSを入れる

はじめに

FAQに

UGREEN NASに unraid または true nas をインストールできますか?
これらのデバイスにはサードパーティのシステムがインストールされている可能性がありますが、非公式にサポートされているシステムをインストールすると潜在的な問題が発生する恐れがあります。これらのサードパーティOSを仮想マシンにインストールすることをお勧めします。

と記載されているので自己責任で。

UGOSのバックアップ

前提としてDXP4800 PlusはM.2スロットが3つあり、2つはユーザーが自由に取り外しができる。 1つのM.2スロットはUGOS(UGREEN独自のOS)が入っていて、初期状態ではそこから起動する。 このUGOS用スロットを無視して、他の2スロットのどちらかにOSを入れて使う方法もあるが、せっかくなら3スロットすべて活用したいところ。 そこでOSを入れ替える前にUGOSを万が一のためにバックアップしておく。

バックアップ方法の選択肢

バックアップには以下の2通りがある。

  • 物理的な方法:SSDを分解して抜き出し、別のストレージとして保管(メーカー保証が無効になる可能性あり)
  • 論理的な方法:SSDの内容を丸ごとコピー

UGOSが入っているSSDは128GBなので、容量に不満がある場合は物理的に交換するしかない。 自分はリセールバリューも考えて、論理的な方法でバックアップを取った。 ただし論理的な方法は、ミスると復元できなくなるリスクがあるためハイリスクになる。 不安な方は別ディスクに復元までの動作確認をしておくのがおすすめ。

実施した手順 (概要)

  1. NASに適当に1枚SSDを挿してUGOSを起動し、ストレージとして扱えるようにしておく
  2. UGOSのUIからSSHを有効化してSSHし、ddコマンドでシステムSSDのコピーを1で挿したSSDに保存
  3. 2で保存したコピーを手元のPCに保存
  4. 再起動中にCtrl+F12を連打してBIOSに入り、Watchdogを無効化 & 挿したSSDがブートディスクとして使えるように設定
  5. USB等から自分が挿したSSDにOSをインストール
  6. インストール完了後の再起動後にCtrl+F2を連打してブートディスク変更
  7. システム用SSDをddコマンドでコピーを取って何らかの方法で手元のPCに保存

最短経路で行くなら初手BIOSでWatchdog無効化 & USBブートで任意のOS起動からのシステムSSDを別のUSBに保存とかもできると思う。 事故ってUGOSが消えて復旧できないと地味に面倒なことになるので自分は安心感がある手順でやった。

事故ってしまった場合はサポートに泣きつくと何かしらの方法で何とかしてくれるっぽいコメントは海外のスレで見た。

システムディスクのコピー

やることは基本どのOSでも同じだと思うが、UGOSでやったときの手順。 まず lsblk でシステムディスクのパスを確認する。

  • nvme0n1: 自分が挿したSSD
  • nvme1n1: UGOSが入っているSSD
$ lsblk
NAME                                     MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
zram0                                    252:0    0   963M  0 disk  [SWAP]
zram1                                    252:1    0   963M  0 disk  [SWAP]
zram2                                    252:2    0   963M  0 disk  [SWAP]
zram3                                    252:3    0   963M  0 disk  [SWAP]
nvme0n1                                  259:0    0 931.5G  0 disk
├─nvme0n1p1                              259:12   0  15.3G  0 part
└─nvme0n1p2                              259:13   0 916.3G  0 part
  └─md1                                    9:1    0 916.1G  0 raid1
    └─ug_55F4C6_1743584188_pool1-volume1 253:0    0 916.1G  0 lvm   /home
                                                                    /volume1
nvme1n1                                  259:3    0 119.2G  0 disk
├─nvme1n1p1                              259:4    0   256M  0 part  /boot
├─nvme1n1p2                              259:5    0     2G  0 part
├─nvme1n1p3                              259:6    0    10M  0 part  /mnt/factory
├─nvme1n1p4                              259:7    0     2G  0 part  /rom
├─nvme1n1p5                              259:8    0     2G  0 part  [SWAP]
├─nvme1n1p6                              259:9    0     4G  0 part  /ugreen
├─nvme1n1p7                              259:10   0   109G  0 part  /overlay
└─nvme1n1p128                            259:11   0   239K  0 part

パスがわかったらddコマンドでコピーを取る。 gzipで圧縮しながら取ったら大体3.4GB程度のサイズになった。

$ sudo dd if=/dev/nvme1n1 bs=64M status=progress conv=sync | gzip > /home/XXX/ugos.img.gz
[sudo] password for XXX:
68585259008 bytes (69 GB, 64 GiB) copied, 504 s, 136 MB/s

システムディスクの復元

作ったバックアップを元に書き込むだけ。 システム用のSSDに対して書き込むのでシステム用のSSD以外で作業環境をブートさせておく必要がある。

gunzip -c ugos.img.gz > ugos.img
dd if=ugos.img of=/dev/nvme1 bs=64M status=progress conv=sync,noerror

この手順で自分は復元してUGOSが起動できるところまで確認できているが、くれぐれも自己責任で。

LEDの調整

UGOS以外のOSではフロントパネルのLEDを制御してくれないので常にロード中っぽい光り方をする。 いい感じの光らせ方にするために GitHub - miskcoo/ugreen_leds_controller: An LED Controller for UGREEN's DX/DXP NAS Series を使わせてもらった。

Proxmox上でdebファイルからインストールしようとしたところ、linux-headersを入れろと言われるものの linux-headers-pve-6.8.12-9-pve パッケージがなくて困っていた。 パッケージを適当に眺めていたら proxmox-headers-6.8.12-9-pve を見つけて入れたらheaders周りは解決した。

またrootディレクトリでインストールしようとすると

N: Download is performed unsandboxed as root as file '/root/led-ugreen-dkms_0.3_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

というエラーが出たので chmod 644 しつつdebファイルを /tmp ディレクトリに移動させてインストールしてうまく動作した。

ざっくりまとめると以下のような感じ。

su -
apt install -y proxmox-headers-6.8.12-9-pve
wget https://github.com/miskcoo/ugreen_leds_controller/releases/download/v0.3/led-ugreen-dkms_0.3_amd64.deb
wget https://github.com/miskcoo/ugreen_leds_controller/releases/download/v0.3/led-ugreen-utils_0.3_amd64.deb
chmod 644 *.deb
mv *.deb /tmp
apt install -y /tmp/led-ugreen-dkms_0.3_amd64.deb
apt install -y /tmp/led-ugreen-utils_0.3_amd64.deb

PVEじゃなくてもdebianベースなら頑張れば大体取り込めそうな気はした。

LEDの色は任意の色に調整可能だが、再起動するとデフォルトの色に戻ってしまうので手が空いたら永続化の方法を調べたい。

検証

測ったときの構成は以下。

  • 付属品SSD 128GB x1
  • SN850X 4TB x2
  • Seagate IronWolf Pro 16TB x2
  • Crucial CT32G56C46S5 x2

OSごとの速度計測

UGOSはランダムI/Oがやや遅かった。PVE上のVMで動かすのも遅くなるが、大体それと同じぐらいの遅さなのでVMとして動いていたりするんだろうか。 sambaの設定はデフォルト設定で同じSSDを使って計測したので大体環境は同じはず。 ネイティブDebianが頭一つ早いが、たまたま早かっただけで平均的にはUbuntuと同じぐらいかなーとは思っている。 元々そこそこのスペックのマシンでPVEを立ち上げてNASを運用していたが、そちらと比べるとCPU性能が律速要因になっている印象を持った。

消費電力

prometheusの集計などもあるので真にアイドルな時間というものはないが、あんまり人がアクセスしない時間帯でも37w程度で思ったよりは電力を食っていた。 UGOSだと何らかの最適化が走ってるかもしれないが、海外のスレ見てもアイドル時で30w前半くらいっぽいのてそんなに差もなさそうな感触。 またLEDの調整を行うと定期的にディスクの状態を確認しに行くからか消費電力が平均的に上がる傾向があった。

13時過ぎぐらいからLEDの調整をやめてみた図

CrystalDiskMarkを走らせたときの消費電力は大体ピークで69W程度だった。

13世代のi5でNASとして動かしてた時も35-50w以内で動いてた気はするので正直この消費電力は期待外れだったが、これ以上スペックが下がると10G転送がかなりきつそうなのでこの辺が10G NASとしては妥当なのかもしれない。

CPU性能

CrystalDiskMarkを走らせたときで以下のような感じ。

速攻でCPU温度が100度付近まで上がっているので冷却性能はあんまり良くないのかもしれない。 ただすぐに70度とかまで下がったりしているので本当か?という気持ちにはなる。

所感

速攻OS入れ替えているので説得力が低いが、UGOSはUI格好いいし、システムモニターもついてるし、使いやすそうでいいなーとは思った。 ただどこまでメンテし続けてくれるのかわからないのと、OS入れ替えるにしてもLinuxでSMBやNFS入れるのがシンプルザ・ベストかなということで入れ替えた。

ハードウェア面としては冷却性能や消費電力はやや期待外れではあったものの、10G NICでM.2 x3 + SATA x4な上に対応ポートが多彩で6万にしてはコスパ良いと思う。