General guidelines for troubleshooting
- Contact OpenEBS Community for support.
- Search for similar issues added in this troubleshootiung section.
- Search for any reported issues on StackOverflow under OpenEBS tag
Blockdevices are not detected by NDM from some of the nodes
One disk is attached per Node in a 3 Node cluster in a VM Environment where CentOS is underlying OS and
kubectl get blockdevice -n openebs return only one disk. Also if the particular node is restarted, from where the disk is detected then the description of the disk attached to that node gets modified.
lsblk output from one of the nodes:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 32G 0 disk |-sda1 8:1 0 1G 0 part /boot `-sda2 8:2 0 31G 0 part |-centos-root 253:0 0 27.8G 0 lvm / `-centos-swap 253:1 0 3.2G 0 lvm [SWAP] sdb 8:16 0 50G 0 disk sr0 11:0 1 1024M 0 rom
kubectl get blockdevice -o yaml of one of the blockdevice and check its serial number. Also ensure that serial number of other 2 blockdevices are different. NDM detect and recognise the blockdevice based on their WWN, Model, Serial and Vendor. If the blockdevice have all the parameters same then NDM cannot differentiate the blockdevice and will create only 1 BlockdDevice CR for each unique parameter. To troubleshoot the same user has to make sure the blockdevices are having at least any one unique parameter from WWN, Model, Serial and Vendor. Usually this issue faced in virtualization environment like vSphere, KVM etc.
Download custom blockdevice CR YAML file from here and apply with the details of each block device. In the sample spec,
ndm.io/managed: is set to false. So NDM will not manage this
Note: If you are creating a block device CR manually for a custom device path, then you must add the corresponding device path under
exclude filter so that NDM will not select the particular device for BD creation. For example, if block device CR is creating for
/dev/sdb manually, then you must add
exclude filter of NDM configuration. See here for customizing the
exclude filter in NDM configuration.
Unable to discover some of disks in Proxmox servers by OpenEBS
User is having a 3 node cluster with 8 disks attached on each node. But
kubectl get bd -n openebs is not detecting all the blockdevices. It is detecting some of the blockdevices from each node. This information can be obtained by running
kubectl describe bd <bd_cr_name> -n openebs.
kubectl get blockdevice -o yaml of one of the blockdevice and its serial number. Also, ensure that the serial number of other 2 blockdevices are different. NDM detect and recognize the blockdevice based on their WWN, Model, Serial and Vendor. If the blockdevice have all the parameters same then NDM cannot differentiate the blockdevice and will create only 1 BlockdDevice CR for each unique parameter. To troubleshoot the same user has to make sure the blockdevices are having at least anyone unique parameter from WWN, Model, Serial and Vendor. Usually this issue is faced in virtualization environment like vSphere, KVM etc. More details abour NDM daemon set functionalities can be read from here.
This can be resolved this by modifying the configuration file of a VM:
Open conf file by following command
Add a serial number by following way:
Restart the VM:
qm shutdown 101 && qm start 101
Verify the disk path for all the disks in a VM:
ls -lah /dev/disk/by-id
Repeat the same procedure on other nodes and ensure the uniqueness of disks in all the Nodes.
BlockDeviceClaims may remain in pending state, even if blockdevices are available in Unclaimed and Active state. The main reason for this will be there are no blockdevices that match the criteria specified in the BlockDeviceClaim. Sometimes, even if the criteria matches the blockdevice may be in an Unclaimed state. Unable to claim blockdevices by NDM operator
Troubleshooting: Check if the blockdevice is having any of the following annotations: 1.)
metadata: annotations: internal.openebs.io/partition-uuid: <uuid> internal.openebs.io/uuid-scheme: legacy
metadata: annotations: internal.openebs.io/fsuuid: <uuid> internal.openebs.io/uuid-scheme: legacy
If 1.) is present, it means the blockdevice was previously being used by cstor and it was not properly cleaned up. The cstor pool can be from a previous release or the disk already container some zfs labels. If 2.) is present, it means the blockdevice was previously being used by localPV and the cleanup was not done on the device.
- ssh to the node in which the blockdevice is present
- If the disk has partitions, run wipefs on all the partitions
wipefs -fa /dev/sdb1 wipefs -fa /dev/sdb9
- Run wipefs on the disk
wipefs -fa /dev/sdb
- Restart NDM pod running on the node
- New blockdevices should get created for those disks and it can be claimed and used. The older blockdevices will go into an Unknown/Inactive state.