Какое-то время TrueNAS работал с одним диском для данных. Пришло время поставить второй. Чего уж проще-то? Поставил диск физически, залогинился. UI нашел новый диск, предложил выбрать новый пул или добавить в существующий. Выбираю cуществующий.
И тут что-то пошло не так. Он предлагает режим stripe (повышаем скорость, но понижаем надежность), а не зеркалирование.
Скорее всего, из-за того, что он создал еще swap зачем-то там же при первоначальной установке:
root@nas[~]# parted /dev/sdc unit s print
Model: JMicron Tech (scsi)
Disk /dev/sdc: 7814037168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 128s 4194304s 4194177s swap
2 4194432s 7814037134s 7809842703s zfs
Так что никаких зеркал через UI.
Что ж, идем в консоль. Переходим под рута (sudo su -
) и создаем такие же партиции:
parted /dev/sdc unit s print
parted /dev/sdb mktable gpt
parted /dev/sdb mkpart primary linux-swap 128s 4194177s
parted /dev/sdb mkpart primary zfs 4194432s 7814037134s
root@nas[~]# parted /dev/sdb unit s print
Model: JMicron Tech (scsi)
Disk /dev/sdb: 7814037168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 128s 4194177s 4194050s primary swap
2 4194432s 7814037134s 7809842703s primary
root@nas[~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238.5G 0 disk
|-sda1 8:1 0 1M 0 part
|-sda2 8:2 0 512M 0 part
`-sda3 8:3 0 238G 0 part
sdb 8:16 0 3.6T 0 disk
|-sdb1 8:17 0 2G 0 part
`-sdb2 8:18 0 3.6T 0 part
sdc 8:32 0 3.6T 0 disk
|-sdc1 8:33 0 2G 0 part
| `-sdc1 253:0 0 2G 0 crypt [SWAP]
`-sdc2 8:34 0 3.6T 0 part
Были какие-то варнинги про скорость и немного по другому свап создался, но нас интересует только вторая партиция (первую можно и удалить).
Теперь собственно подключаем ее:
root@nas[~]# zpool status default-pool
pool: default-pool
state: ONLINE
scan: scrub repaired 0B in 14:56:00 with 0 errors on Tue Jul 23 05:26:02 2024
config:
NAME STATE READ WRITE CKSUM
default-pool ONLINE 0 0 0
1e6fd139-4e95-4a51-84ee-267773d9d463 ONLINE 0 0 0
errors: No known data errors
root@nas[~]# ls -l /dev/disk/by-partuuid
total 0
lrwxrwxrwx 1 root root 10 Aug 17 20:47 0602e2ac-4edc-412f-a447-378046660829 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Aug 17 20:35 082ae472-b688-4925-aacd-ec032b56a66d -> ../../sda3
lrwxrwxrwx 1 root root 10 Aug 17 20:47 1e6fd139-4e95-4a51-84ee-267773d9d463 -> ../../sdc2
lrwxrwxrwx 1 root root 10 Aug 17 20:49 35e8f7f0-ff98-4392-a529-b613605fe98f -> ../../sdb1
lrwxrwxrwx 1 root root 10 Aug 17 20:35 9c1d90c0-beba-4aeb-9e94-4f539401199e -> ../../sda2
lrwxrwxrwx 1 root root 10 Aug 17 20:49 f09d7c50-0423-46e2-b1e1-5947f269731a -> ../../sdb2
lrwxrwxrwx 1 root root 10 Aug 17 19:48 f4d2e993-32a7-4982-9d32-f9b7abce9754 -> ../../sda1
# main command
zpool attach default-pool /dev/disk/by-partuuid/1e6fd139-4e95-4a51-84ee-267773d9d463 /dev/disk/by-partuuid/f09d7c50-0423-46e2-b1e1-5947f269731a
root@nas[~]# zpool status default-pool
pool: default-pool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Sat Aug 17 20:55:33 2024
282G scanned at 7.04G/s, 1.58M issued at 40.4K/s, 1.81T total
0B resilvered, 0.00% done, no estimated completion time
config:
NAME STATE READ WRITE CKSUM
default-pool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
1e6fd139-4e95-4a51-84ee-267773d9d463 ONLINE 0 0 0
f09d7c50-0423-46e2-b1e1-5947f269731a ONLINE 0 0 0
errors: No known data errors
Синхронизация заняла порядка 30 часов: много, но NAS спокойно работал, без каких-либо высоких нагрузок.
Вот только непонятно как это должен делать неподготовленный человек. Все-таки TrueNAS сложноват (вот откуда изначально взялся там swap? и нет поддержки partitions в UI).
Ну, и первоначально грузился с одного диска (SSD). Так же решил поставить новый диск, т.к. на старом уже появились битые сектора (и может в любой момент совсем умереть). В этом случае UI есть, но немного спрятан: https://www.truenas.com/docs/core/coretutorials/systemconfiguration/mirroringthebootpool . Заняло буквально несколько минут на синхронизацию, там реальных данных до 10 Гб (что адекватно для ОС без данных).