Skip to content

Latest commit

 

History

History
198 lines (167 loc) · 7.36 KB

blockdevice.md

File metadata and controls

198 lines (167 loc) · 7.36 KB

🧻 Le périphérique en mode bloc (Block Device)

Les périphériques en mode bloc réferent souvant aux disques durs dont la lecture se fait en bloc, généralement de 512 octets (bytes)

🆎 Information sur le périphérique

Udev est le gestionnaire de périphérique du noyau Linux. Dynamiquement, Udev crée ou enlève des noeuds de fichiers périphériques au démarrage en fonction du répertoire /dev pour tous types de périphériques. Udev fait maintenant partie de systemd et peut être controllé par $ systemctl status systemd-udevd.

  • Pour avoir des informations sur un périphérique: (i.e /dev/ubuntu-vg/iscsi-lv)
udevadm info --query property --name /dev/ubuntu-vg/iscsi-lv

Retourne

 udevadm info --query property --name /dev/ubuntu-vg/iscsi-lv
DEVPATH=/devices/virtual/block/dm-1
DEVNAME=/dev/dm-1
DEVTYPE=disk
MAJOR=253
MINOR=1
SUBSYSTEM=block
USEC_INITIALIZED=18955999
DM_UDEV_DISABLE_LIBRARY_FALLBACK_FLAG=1
DM_UDEV_PRIMARY_SOURCE_FLAG=1
DM_UDEV_RULES=1
DM_UDEV_RULES_VSN=2
DM_NAME=ubuntu--vg-iscsi--lv
DM_UUID=LVM-rezWQCWaDuFq4QzhcU4F3POBUQUJvJDMCYBBEPap5KcvpALZzh1BF1oXQ1QddcG1
DM_SUSPENDED=0
DM_VG_NAME=ubuntu-vg
DM_LV_NAME=iscsi-lv
ID_FS_VERSION=5000
ID_FS_LABEL=cstor-81a8133b-0850-496f-a088-351bc9093fc9
ID_FS_LABEL_ENC=cstor-81a8133b-0850-496f-a088-351bc9093fc9
ID_FS_UUID=29004690544607292
ID_FS_UUID_ENC=29004690544607292
ID_FS_UUID_SUB=17346365271265347888
ID_FS_UUID_SUB_ENC=17346365271265347888
ID_FS_TYPE=zfs_member
ID_FS_USAGE=filesystem
DM_TABLE_STATE=LIVE
DM_STATE=ACTIVE
DEVLINKS=/dev/disk/by-uuid/29004690544607292 /dev/ubuntu-vg/iscsi-lv /dev/disk/by-label/cstor-81a8133b-0850-496f-a088-351bc9093fc9 /dev/mapper/ubuntu--vg-iscsi--lv /dev/disk/by-id/dm-name-ubuntu--vg-iscsi--lv /dev/disk/by-id/dm-uuid-LVM-rezWQCWaDuFq4QzhcU4F3POBUQUJvJDMCYBBEPap5KcvpALZzh1BF1oXQ1QddcG1
TAGS=:systemd:
  • pour avoir la taille d'un périphérique
sudo fdisk --list /dev/mapper/ubuntu--vg-iscsi--lv

Retourne

Disk /dev/mapper/ubuntu--vg-iscsi--lv: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
  • pour avoir son 🆔 ou encore son PARTUUID
echo "blockdevice-"`sudo blkid --match-tag PARTUUID --output value /dev/sda3`

Retourne

blockdevice-943643da-1a54-4b2f-b1fa-e1c27ba61b96
  • pour enfin avoir le nom du noeud
uname --nodename

Retourne

saiph

🏗️ Ces informations sont requises pour créer le fichier de configuration yaml utilisé pour créer le périphérique en mode bloc block device. 3 périphériques (block devices) sont requis pour former un réservoir (pool) de stockage géré par un réseau iSCSI

TAG Valeur
{metadata.name} blockdevice-PARTUUID
{metadata.labels.kubernetes.io/hostname} uname --nodename
{spec.capacity.storage}  fdisk --list (taille en octets -- bytes)
{spec.devlinks.kind[by-id].links} udevadm info - DEVLINKS /dev/disk/by-id(1)
udevadm info- DEVLINKS /dev/disk/by-id(2)
{spec.devlinks.kind[by-path].links} udevadm info- DEVLINKS /dev/mapper(1)
{spec.nodeAttributes.nodeName] uname --nodename
{spec.path} udevadm info- DEVNAME

⭐ Le fichier se présente comme ceci:

apiVersion: openebs.io/v1alpha1
kind: BlockDevice
metadata:
  name: blockdevice-18918f5d-e3d0-4e77-9126-febbfbf0366c
  labels:
    kubernetes.io/hostname: saiph
    ndm.io/managed: "false"
    ndm.io/blockdevice-type: blockdevice
status:
  claimState: Unclaimed
  state: Active
spec:
  capacity:
    logicalSectorSize: 512
    storage: 107374182400
  details:
    deviceType: lvm
  devlinks:
  - kind: by-id
    links:
    - /dev/disk/by-id/dm-uuid-LVM-rezWQCWaDuFq4QzhcU4F3POBUQUJvJDMCYBBEPap5KcvpALZzh1BF1oXQ1QddcG1
    - /dev/disk/by-id/dm-name-ubuntu--vg-iscsi--lv
  - kind: by-path
    links:
    - /dev/mapper/ubuntu--vg-iscsi--lv
  nodeAttributes:
    nodeName: saiph
  path: /dev/dm-1
---

🅱️ Créer le fichier blockdevice:

📍 Créer un fichier par noeud et le mettre dans le répertoire de la grappe en suivant le modèle ci-dessous:

  • Le nom du fichier devra être sous la forme blockdevice-xxxx-xxxx-xxx-xxx.yaml

  • Executer le fichier (remplacer par le bon nom de fichier blockdevice-xxxx-xxxx-xxx-xxx.yaml)

kubectl apply --namespace openebs --filename blockdevice-xxxx-xxxx-xxx-xxx.yaml

⚠️ Bien vérifier que le fichier aient les bonnes informations du périphérique iscsi-lv

🔙

References

https://openebs.io/blog/creating-manual-blockdevice/

 apiVersion: openebs.io/v1alpha1
 kind: BlockDevice
 metadata:
   name: example-blockdevice-1
   labels:
     kubernetes.io/hostname: <host name in which disk/blockdevice is attached> # like gke-openebs-user-default-pool-044afcb8-bmc0
     ndm.io/managed: "false" # for manual blockdevice creation put false
     ndm.io/blockdevice-type: blockdevice
 status:
   claimState: Unclaimed
   state: Active
 spec:
   capacity:
     logicalSectorSize: 512
     storage: <total capacity in bytes> #like 53687091200
   details:
     deviceType: <device type> # like disk, partition, lvm, crypt, md
     firmwareRevision: <firmware revision>
     model: <model name of blockdevice> # like PersistentDisk
     serial: <serial no of disk> # like google-disk-2
     compliance: <compliance of disk> #like "SPC-4"
     vendor: <vendor of disk> #like Google
   devlinks:
   - kind: by-id
     links:
     - <link1> # like /dev/disk/by-id/scsi-0Google_PersistentDisk_disk-2
     - <link2> # like /dev/disk/by-id/google-disk-2
   - kind: by-path
     links:
     - <link1> # like /dev/disk/by-path/virtio-pci-0000:00:03.0-scsi-0:0:2:0
   nodeAttributes:
     nodeName: <node name> # output of `kubectl get nodes` can be used
   path: <devpath> # like /dev/md0

References