Profile retele si volume in LXD

Postat la Mon 23 April 2018 in tutoriale, lxd, lxc

Inainte de a prezenta modul de lucru cu containere e bine sa prezint cateva elemente folosite in mediul LXD:

  • profile (profile)
  • retele (network)
  • stocare si volume (storage and volume)

Profile

VM se pot defini prin profile unde sunt / pot fi predefinite:

  • interfetele de retea
  • retele unde se conecteaza
  • numarul de core-uri
  • RAM
  • spatiul pe disk

Initial se creaza profilul default:

config: {}
description: Default LXD profile
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: br0
    type: nic
  root:
    path: /
    pool: lxd001
    type: disk
name: default
used_by: []

ce defineste VM ca se va conecta cu interfata eth0 la bridge br0 si va avea partia / pe pool lxd001 definit anterior de marime nedefinita.

Un profil mai complex cu doua interfete si partitia / de 25G:

config: {}
description: Dual link  profile
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: br0
    type: nic
  eth1:
    name: eth1
    nictype: bridged
    parent: lxdbr0
    type: nic
  root:
    path: /
    pool: default=lxd001
    size: 25GB
    type: disk
name: dual-25G
used_by: []

Mai multe informatii legate de parametrii de confgurare gasiti aici.

Operatii asupra profilelor:

lxc profile list

lxc profile show default

lxc profile create dual

lxc profile edit dual

lxc profile delete dual

Retele

Retele la care sunt conectate VM se definesc prin bridge-uri, care pot fi conectate via NAT la reteaua fizica a gazdei, pot oferi servicii de dhcp si DNS pe IPV4 si IPV6:

config:
    ipv4.address: 10.213.199.1/24
    ipv4.nat: "true"
    ipv6.address: none
    ipv6.nat: "false"
description: Internal network
name: lxdbr0
type: bridge
used_by:[]
managed: true
status: Created
locations:
- none

Mai multi parametrii de configurare va sunt explicati in pagina dedicata din documentatie

Aceste retele pot fi atasate la VM sau profile prin interfete virtuale.

Operatii asupra retelelor:

lxc network list

lxc network show lxdbr0

lxc network create lxdbr0

lxc network edit lxdbr0make

lxc network delete lxdbr0

lxc network attach-profile dual lxdbr0 eth1 eth1

Volume

Discurile virtuale - volume - se definesc ca dataset-uri in sistemul de fisiere ZFS. Acestea se pot crea, atasa prin profile sau ulterior

config:
  size: 10GB
  volatile.idmap.last: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":100000,"Nsid":0,"Maprange":65536}]'
  volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":100000,"Nsid":0,"Maprange":65536}]'
description: ""
name: data01
type: custom
used_by:[]
location: none

Descrierea optiunilor le gasiti in sectiunea dedicata din documentatie

Operatii asupra volumelor:

lxc storage volume list

lxc storage volume show lxd001 data01

lxc storage volume create lxd001 data01

lxc storage volume create lxd001 data01 size=10GB

lxc storage volume attach lxd001 data01 node1 lxd001/custom/data01 /mnt/upload

lxc storage volume detach lxd001 data01 node1

lxc storage volume delete lxd001 data01

Daca nu se specifica marimea volumului (dataset ZFS) acesta va putea ocupa tot spatiul disponibil. Ulterior marimea dataset-ului - quota poate fi modificata prin ZFS:

zfs get quota lxd001/containers/salt-master
NAME                           PROPERTY  VALUE  SOURCE
lxd001/containers/salt-master  quota     none   default

zfs set quota=25GB lxd001/containers/salt-master

zfs get quota lxd001/containers/salt-master
NAME                           PROPERTY  VALUE  SOURCE
lxd001/containers/salt-master  quota     25G    local

Dar quota unui volum ofera siguranta ca spatiul este rezervat complet pentru volum. Aici intervine reservation care face acest lucru

zfs get reservation lxd001/containers/salt-master
NAME                           PROPERTY     VALUE   SOURCE
lxd001/containers/salt-master  reservation  none    default

zfs set reservation=25GB lxd001/containers/salt-master

zfs get reservation lxd001/containers/salt-master
NAME                           PROPERTY     VALUE   SOURCE
lxd001/containers/salt-master  reservation  25G     local

Articolul face parte din seria Virtualizare cu LXD