The disks in the screen shot and the photo do not match. Any suggestions on what might be wrong?
Have you check this post: 45Drives Tools: dalias - Error Duplicate Device Path Found Ignoring - #18 by Krushal
There is a script that should recognize which drive is in the slot.
The disk order is updated during a boot up.
Hope this helps you.
Hi @igor14051, It looks like the cabling of the system and our aliasing tool are backwards.
As @pcHome suggested you can run the script to realias the system for the wiring or if you would like you can swap the cables plugged into the motherboard which should also fix the issue
There should be 4 connectors total (2 different types), all you need to do is switch the pairs of cables in the system and then the drives should show up correctly
Thank you! I ran dalias and that worked like a charm
- I love the support here
Thank you everyone!!!
When you have a working HL15 (or other system), where the alias of 1-1 thru 1-x is shown in the houston UI, a drive needing to be replaced may not have the right alias.
While dalias is a great tool, the process is going to force you to remove the drive and replace it. It may or may not cause resilvering again.
I found the python script for dalias is great for the initial setup and in my case, I needed to fix
zpool status MyPool
pool: MyPool
state: ONLINE
scan: resilvered 3.23T in 10:52:57 with 0 errors on Fri May 16 20:21:16 2025
config:
NAME STATE READ WRITE CKSUM
MyPool ONLINE 0 0 0
raidz3-0 ONLINE 0 0 0
1-2-part2 ONLINE 0 0 0
1-6-part2 ONLINE 0 0 0
1-1-part2 ONLINE 0 0 0
1-7-part2 ONLINE 0 0 0
ata-ST4000NM0035-1V4107_XXXXXXXX ONLINE 0 0 0
1-5-part2 ONLINE 0 0 0
1-3-part2 ONLINE 0 0 0
1-4-part2 ONLINE 0 0 0
sdj ONLINE 0 0 0
1-8-part2 ONLINE 0 0 0
cache
sdk1 ONLINE 0 0 0
sdl1 ONLINE 0 0 0
I wanted to have slot 1-9 and 1-10 back as the houston UI’s zfs module will not know the status of these two drives (/dev/sdi and /dev/sdj).
If you have /etc/vdev_id.conf with the right content (example from my hl15):
# This file was generated using dalias (2.0.0)
alias 1-1 /dev/disk/by-path/pci-0000:00:17.0-ata-1
alias 1-2 /dev/disk/by-path/pci-0000:00:17.0-ata-2
alias 1-3 /dev/disk/by-path/pci-0000:00:17.0-ata-3
alias 1-4 /dev/disk/by-path/pci-0000:00:17.0-ata-4
alias 1-5 /dev/disk/by-path/pci-0000:00:17.0-ata-5
alias 1-6 /dev/disk/by-path/pci-0000:00:17.0-ata-6
alias 1-7 /dev/disk/by-path/pci-0000:00:17.0-ata-7
alias 1-8 /dev/disk/by-path/pci-0000:00:17.0-ata-8
alias 1-9 /dev/disk/by-path/pci-0000:19:00.0-sas-phy4-lun-0
alias 1-10 /dev/disk/by-path/pci-0000:19:00.0-sas-phy5-lun-0
alias 1-11 /dev/disk/by-path/pci-0000:19:00.0-sas-phy6-lun-0
alias 1-12 /dev/disk/by-path/pci-0000:19:00.0-sas-phy7-lun-0
alias 1-13 /dev/disk/by-path/pci-0000:19:00.0-sas-phy0-lun-0
alias 1-14 /dev/disk/by-path/pci-0000:19:00.0-sas-phy1-lun-0
alias 1-15 /dev/disk/by-path/pci-0000:19:00.0-sas-phy2-lun-0
and if you have the /dev/disk/by_vdev/ working
ls -la /dev/disk/by-vdev/
total 0
drwxr-xr-x 2 root root 720 May 17 10:47 .
drwxr-xr-x 9 root root 180 May 17 10:47 ..
lrwxrwxrwx 1 root root 9 May 17 11:49 1-1 -> ../../sda
lrwxrwxrwx 1 root root 9 May 17 11:49 1-10 -> ../../sdj
lrwxrwxrwx 1 root root 10 May 17 11:49 1-10-part1 -> ../../sdj1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-10-part9 -> ../../sdj9
lrwxrwxrwx 1 root root 9 May 17 11:49 1-11 -> ../../sdk
lrwxrwxrwx 1 root root 10 May 17 11:49 1-11-part1 -> ../../sdk1
lrwxrwxrwx 1 root root 9 May 17 11:49 1-12 -> ../../sdl
lrwxrwxrwx 1 root root 10 May 17 11:49 1-12-part1 -> ../../sdl1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-1-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-1-part2 -> ../../sda2
lrwxrwxrwx 1 root root 9 May 17 11:49 1-2 -> ../../sdb
lrwxrwxrwx 1 root root 10 May 17 11:49 1-2-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-2-part2 -> ../../sdb2
lrwxrwxrwx 1 root root 9 May 17 11:49 1-3 -> ../../sdc
lrwxrwxrwx 1 root root 10 May 17 11:49 1-3-part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-3-part2 -> ../../sdc2
lrwxrwxrwx 1 root root 9 May 17 11:49 1-4 -> ../../sdd
lrwxrwxrwx 1 root root 10 May 17 11:49 1-4-part1 -> ../../sdd1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-4-part2 -> ../../sdd2
lrwxrwxrwx 1 root root 9 May 17 11:49 1-5 -> ../../sde
lrwxrwxrwx 1 root root 10 May 17 11:49 1-5-part1 -> ../../sde1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-5-part2 -> ../../sde2
lrwxrwxrwx 1 root root 9 May 17 11:49 1-6 -> ../../sdf
lrwxrwxrwx 1 root root 10 May 17 11:49 1-6-part1 -> ../../sdf1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-6-part2 -> ../../sdf2
lrwxrwxrwx 1 root root 9 May 17 11:49 1-7 -> ../../sdg
lrwxrwxrwx 1 root root 10 May 17 11:49 1-7-part1 -> ../../sdg1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-7-part2 -> ../../sdg2
lrwxrwxrwx 1 root root 9 May 17 11:49 1-8 -> ../../sdh
lrwxrwxrwx 1 root root 10 May 17 11:49 1-8-part1 -> ../../sdh1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-8-part2 -> ../../sdh2
lrwxrwxrwx 1 root root 9 May 17 11:49 1-9 -> ../../sdi
lrwxrwxrwx 1 root root 10 May 17 11:49 1-9-part1 -> ../../sdi1
lrwxrwxrwx 1 root root 10 May 17 11:49 1-9-part9 -> ../../sdi9
Then you can do a simple zpool export
remove the /etc/zfs/zpool.cache
then use zpool import -d /dev/disk/by-vdev MyPool
everything will be back to how the HL15 was originally configured (using the slots)
zpool status
pool: MyPool
state: ONLINE
scan: resilvered 3.23T in 10:52:57 with 0 errors on Fri May 16 20:21:16 2025
config:
NAME STATE READ WRITE CKSUM
MyPool ONLINE 0 0 0
raidz3-0 ONLINE 0 0 0
1-2-part2 ONLINE 0 0 0
1-6-part2 ONLINE 0 0 0
1-1-part2 ONLINE 0 0 0
1-7-part2 ONLINE 0 0 0
1-9 ONLINE 0 0 0
1-5-part2 ONLINE 0 0 0
1-3-part2 ONLINE 0 0 0
1-4-part2 ONLINE 0 0 0
1-10 ONLINE 0 0 0
1-8-part2 ONLINE 0 0 0
cache
1-11-part1 ONLINE 0 0 0
1-12-part1 ONLINE 0 0 0
errors: No known data errors
Hope this is helpful. For me this saved me from having to remove/insert each drive.
I am working on a minor python script to run a series of commands to stop the needed services, unmount the needed disks, to then export the Pool, remove the zpool cache files, run a few udevadm commands, zpool import the pool, start all the services backup, etc
