Zpool übertragen

Da ich in die Verlegenheit kam von einer 960GB SSD (Crucial M550) auf eine Samsung 960Pro (890GB) zu migrieren (weil die Crucial mit der I/O Last zu Cron Zeiten nicht mehr zurecht kam), durfte ich einen Zpool übertragen.

Da man das nicht jeden Tag macht, habe ich mir das einmal aufgeschrieben:

Proxmox: ISCSI aus dem System werfen (auch mit Multipath)

ProxMox macht es einem einfach, neue ISCSI Targets ins System aufzunehmen. Ein Klick im Admincenter und schon kann man los legen. Will man das Target allerdings wieder loswerden, wird es schon nicht mehr so trivial. Wurden sämtliche ISCSI Geräte von VMs befreit, sodass die Targets ungenutzt sind, lassen die sich zwar aus dem Webinterface entfernen (Storage …), aber dann sind sie nur aus dem Blick, nicht jedoch aus dem Sinn. Die ISCSI Targets sind nach wie vor verfügbar, was spätestens ein Blick mit „iscsiadm node“ bzw. statt „node“ auch „session“ zeigt. Hat man es nicht nur mit einer einzelnen Node zu tun, sondern hat einen ProxMox Cluster, wird es 1*n mal so hässlich.

Kommt man auf die böse Idee das ISCSI Target auf der ISCSI Serverseite zu entfernen, friert die Node unter Umständen ein, bzw. wirft Haufen Fehler, weil die Geräte nicht mehr verfügbar sind, besonders „multipath“ fängt kräftig an zu jammern.

Hier also mein Notizzettel (ungefiltert) , wie die „Geräte“ sauber aus dem System entfernt werden können – ohne Reboot der Node.

ISCSI Target aus Proxmox entfernen:

26f35644f35736a70 dm-5 SCST_BIO,o5dO5sjpPn4ZxszR
size=3.9T features='1 queue_if_no_path' hwhandler='0' wp=rw
-+- policy='round-robin 0' prio=0 status=active
  |- 13:0:0:0 sdh 8:112 active ready running
  |- 15:0:0:0 sdi 8:128 active ready running
  |- 16:0:0:0 sdj 8:144 active ready running
- 17:0:0:0 sdk 8:160 active ready running

o5dO5sjpPn4ZxszR ist Name vom ISCSI Target -> verifizieren über den ISCSI Server, ob das wirklich das zu löschende ist. 26f35644f35736a70 ist der Name des Multipath Gerätes.

  1. Alle VMs auf anderes Gerät migrieren / local / anderes ISCSI Target
  2. Alte LVs in Proxmox löschen (meist unused disk in jeweiliger VM)
  3. Prüfen auf Konsole mit lvscan, ob wirklich keine VM mehr die VG verwendet
  4. Wenn keine Referenz mehr in Proxmox genutzt, dann in Proxmox Webseite unter Storage erst VG entfernen, dann ISCSI Target
  5. Auf Konsole VG vollständig auf beliebiger Node löschen (vgremove)
  6. Gerät aus dem LVM entfernen (pvremove)
  7. Name aus multipath -ll entnehmen
  8. o5dO5sjpPn4ZxszR ist Name vom ISCSI Target Verifizieren über den ISCSI Server, ob das wirklich das zu löschende ist. 26f35644f35736a70 ist der Name des Multipath Gerätes.
  9. Gerät aus Multipath entfernen
    • multipath -f 26f35644f35736a70
  10. Wenn “map in use”
    • dmsetup --tree prüfen
  11. Dann entfernen: -dmsetup remove jbod2--testvg-vm--121--disk--1
  12. Bei Erfolg, nochmals: -multipath -f 26f35644f35736a70
  13. ISCSI Sessions auflisten:
    • iscsiadm -m session
  14. Bei aktiver session, ausloggen:
    • iscsiadm -m node -T jbod-vmdata-02-test --portal 192.168.1.100 --logout
  15. Dann passendes Portal löschen:
    • iscsiadm -m node -o delete -T jbod-vmdata-02-test --portal 192.168.1.100
  16. Prüfen mittels: iscsiadm -m node | grep jbod-vmdata-02-test ob keins mehr vorhanden ist

Wer es mit mehr als einer Node zu tun hat, sollte zu einem Cluster SSH greifen, um alle Kommandos parallel an allen n-Nodes auszuführen.