Ajouter un disque et supprimer un disque avec XM

Oracle VM Manager permet d’ajouter et de supprimer les disques d’un guest simplement depuis l’onglet « Shared Virtual Disk de la console. Toutefois, il existe quelques bonnes raisons de faire autrement et donc d’utiliser les outils fournis par Xen disponibles dans le domaine 0. Parmi ces exemples sur lesquels OVM Manager peut encore s’améliorer, on peut citer :

  • l’utilisation des drivers blktab 
  • l’attachement de sparse files si vous voulez faire du thin provisioning
  • la possibilité de copier du contenu dans un disque avant de le monter(vous pouvez vous inspirer d’un article précédent pour quelques idées)

Et puis, il est toujours bon, en plus du mode ligne de commande OVM Manager, de pouvoir vérifier le status des serveurs de manière technique si vous voulez intégrer Oracle VM à une solution de supervision autre que celle d’Enterprise Manager.
Dans un premier temps, vous pouvez créer un fichier sparse avec une commande comme celle ci-dessous :

dd if=/dev/zero of=/disks/distribs.img bs=1024k count=1 seek=10240

Pour l’attacher au domaine 3, exécutez simplement la commande xm attach comme ci-dessous :

xm attach 3 tap:aio:/disks/distribs.img xvdb w

Pour vérifier que le disque est attaché, utilisez xenstore-ls et xm block-list -l comme ci-dessous :

xenstore-ls
[...]
tap = ""
[...]
51728 = ""
domain = "154_OVM_EL5U4_ORACLE_X86_PVM"
frontend = "/local/domain/3/device/vbd/51728"
uuid = "cead5af5-4921-fad4-6ed6-fa385e952d6b"
bootable = "0"
dev = "xvdb"
state = "4"
params = "aio:/disks/distribs.img"
mode = "w"
online = "1"
frontend-id = "3"
type = "tap"
sectors = "20973568"
sector-size = "512"
info = "0"
hotplug-status = "connected"
[...]


xm block-list -l
[...]
(51728
((virtual-device 51728)
(device-type disk)
(protocol x86_32-abi)
(backend-id 0)
(state 4)
(backend /local/domain/0/backend/tap/3/51728)
(ring-ref 265)
(event-channel 10)
)
)
[...]

Vous pourrez alors simplement décrocher le disque de votre dom-U à chaud avec la commande xm block-detach comme ci-dessous :

xm block-detach 3 /local/domain/0/backend/tap/3/51728