# Live Discovery Patterns for Storage Migrations ## Discovery commands for storage migration planning When planning to move disks between systems (ZFS → Ceph, decommission, etc.), always run these live first: ### Ceph OSD Discovery ```bash # Full OSD info ceph osd tree ceph osd df # Single OSD metadata (shows device path, size, rotational, hostname) ceph osd metadata osd.N --conf /etc/pve/ceph.conf --keyring /etc/pve/priv/ceph.client.admin.keyring # Device path tells you if disk is USB-backed: # USB: "/dev/disk/by-path/pci-*usb-*" # Native SATA: "/dev/disk/by-path/pci-*ata-*" # NVMe: "/dev/disk/by-path/pci-*nvme-*" # Pool-to-Crush-Rule mapping ceph osd pool ls detail | grep -E "pool_name|crush_rule" ``` ### ZFS Discovery ```bash zpool status # Which disks are members? zpool list # Capacity info zfs list # Datasets and usage ``` ### Smart Health ```bash smartctl -a /dev/sdX | grep -E "Model|Serial|Rotation|Reallocated|Power_On|Temp" ``` ## Ceph Pool Details (from session 2026-07-03) | Pool | Rule | Size | Applied To | |------|------|------|------------| | cephfs_data | replicated_rule (host) | 3 | CephFS | | cephfs_metadata | replicated_ssd (host) | 3 | CephFS meta | | vm_disks | replicated_ssd (host) | 3 | VM disks | | rbd | replicated_hdd (host) | 3 | RBD | | hdd_disk | replicated_hdd (host) | 3 | General storage | | tm_disks | replicated_hdd (host) | 2 | TimeMachine | CRUSH rules: `replicated_rule` = default (host), `replicated_ssd` = SSD-only, `replicated_hdd` = HDD-only. ## Ceph Version Squid 19.2.4 (stable), on Proxmox VE cluster "pve" with nodes proxmox3-7 + n5pro.