siderolabs / talos

Talos Linux is a modern Linux distribution built for Kubernetes.
https://www.talos.dev
Mozilla Public License 2.0
6.45k stars 514 forks source link

Talos: detecting iSCSI blockdevices (?) #7017

Closed smira closed 1 year ago

smira commented 1 year ago

Research: figure out if we can provide 'network block device/iSCSI' flag to Disks API?

smira commented 1 year ago
$ talosctl -n 10.26.21.131 ls -l /sys/block/nvme0n1/device                                                                                                                                                                                                                                                                
NODE           MODE         UID   GID   SIZE(B)   LASTMOD           NAME
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:30   .
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   address
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   cntlid
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   dev
10.26.21.131   Lrwxrwxrwx   0     0     0         Mar 28 16:50:56   device -> ../../../0005:03:00.0
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   firmware_rev
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   hwmon0
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   kato
10.26.21.131   -r--r--r--   0     0     4096      Mar 15 17:04:31   model
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   ng0n1
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   numa_node
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:30   nvme0n1
10.26.21.131   drwxr-xr-x   0     0     0         Mar 28 16:50:56   power
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   queue_count
10.26.21.131   --w-------   0     0     4096      Mar 28 16:50:56   rescan_controller
10.26.21.131   --w-------   0     0     4096      Mar 28 16:50:56   reset_controller
10.26.21.131   -r--r--r--   0     0     4096      Mar 15 17:04:31   serial
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   sqsize
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   state
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   subsysnqn
10.26.21.131   Lrwxrwxrwx   0     0     0         Mar 15 17:04:31   subsystem -> ../../../../../../class/nvme
10.26.21.131   -r--r--r--   0     0     4096      Mar 28 16:50:56   transport
10.26.21.131   -rw-r--r--   0     0     4096      Mar 15 17:04:31   uevent
$ talosctl -n 10.26.21.131 ls -l /sys/class                                                                                                                                                                                                                                                                           
NODE           MODE         UID   GID   SIZE(B)   LASTMOD           NAME
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:26   .
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   ata_device
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   ata_link
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   ata_port
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   atm
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   backlight
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   bdi
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   block
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   bsg
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   devfreq
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   devfreq-event
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   devlink
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   dma
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:26   dmi
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   drm
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   enclosure
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   extcon
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   fc
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   gpio
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   graphics
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   hidraw
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   hnae
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   hwmon
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   i2c-adapter
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   i2c-dev
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   iLO
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   ieee80211
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   ieee802154
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   infiniband
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   input
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   iommu
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   ipmi
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   iscsi_connection
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   iscsi_endpoint
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   iscsi_host
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   iscsi_iface
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   iscsi_session
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   iscsi_transport
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   leds
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   macvtap
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   mdio_bus
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   mem
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   misc
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   mmc_host
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   mtd
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   nd
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:28   net
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   nvme
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   nvme-fabrics
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   nvme-generic
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   nvme-subsystem
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   pci_bus
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   pci_epc
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   phy
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   power_supply
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   pps
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   ptp
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   pwm
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   raid_devices
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   regulator
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   rfkill
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   rtc
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   sas_device
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   sas_end_device
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   sas_expander
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   sas_host
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   sas_phy
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   sas_port
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   scsi_device
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   scsi_disk
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   scsi_generic
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   scsi_host
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   spi_host
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   spi_master
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   spi_transport
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   spidev
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   thermal
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   tpm
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   tpmrm
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   tty
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   udc
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   usb_role
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   vc
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   vfio
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   virtio-ports
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   vtconsole
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   wakeup
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   watchdog
10.26.21.131   drwxr-xr-x   0     0     0         Mar 15 17:04:31   xt_idletimer
172.20.0.2   Lrwxrwxrwx   0     0     0         Mar 27 23:31:47   subsystem -> ../../../../bus/virtio
smira commented 1 year ago

The idea is to read the subsystem symlink and present that from the Disks API side so that a caller might decide which blockdevice to wipe based on the subsystem: e.g. iscsi_* should be blacklisted, while scsi_* should be okay