====== Funcionamiento LVM ======
//**MBR**//
//**GPT**//
====== Crear un LVM ======
gdisk /dev/DISCO
Crear particion con tipo Linux LVM(8e00)
pvcreate /dev/DISCOp1
pvs
vgcreate vgdata /dev/DISCOp1
vgs
vgdisplay vgdata
lvcreate -L 100M -n lvdata /dev/vgdata
ls -alh /dev/vgdata
mkfs.btrfs /dev/vgdata/lvdata
mount /dev/vgdata/lvdata /mnt
mkdir /mydata
Montar con fstab
mount -a
lvs
====== Redimensionar LVM ======
Para redimensionar LVM, tambien debemos redimensionar la particion.
**ext4** se puede agrandar o achicar
**xfs** solo se puede agrandar
mount |grep lv
df -h|grep lv
lvreduce -L -100M -r /dev/vgdata/lvdata
vgs
lvextend -L +100M -r /dev/vgdata/lvdata
Agregar mas espacio al VOlumeGroup
vgextend vgdata /dev/NUEVODISCOp1
vgs
====== LVM Mirror & Stripes ======
lvcreate -i
vgcreate vgmirror /dev/DISCO1p1 /dev/DISCO2p1 /dev/DISCO3p1 /dev/DISCO4p1
vgs
lvcreate --type raid1 -m1 -L 200M -m lvmirror vgmirror
lvdisplay /dev/vgmirror/lvmirror
====== Snapshots ======
Snapshots es una copia de la metadata, si algun dato cambia, crea una copia de esa data.
Snapshots deben ser temporales.
lvcreate -s -n root-snap -L 400M /dev/vgmirror/lvmirror
lvs
mount /dev/vgmirror/ /mnt
====== Resumen ======
===== Comandos =====
apt install lvm2
apt install thin-provisioning-tools
lvm dumpconfig|grep snapshot
==== Discos Fisicos ====
pvcreate DISCO1 DISCO2...
pvs
pvremove DISCO1 DISCO2...
pvdisplay
==== Grupo de Volumenes ====
vgcreate NOMBRE DISCO1 DISCO2
vgextend NOMBRE DISCO1...
vgreduce NOMBRE DISCO1...
vgs
vgsplit NOMBRE NOMBREPEQUE DISCO1...
vgmerge -v NOMBRE NOMBREPEQUE
vgrename NOMBRE NUEVO
vgdisplay
==== Volumenes Logicos ====
Crear y Borrar
lvcreate -L SIZE VGNAME
lvcreate -L SIZE -n NAME VGNAME
lvs
lvs -v --segments
lvs -o help
lvs -o +devices
lvrename VGNAME OLDNAME NEWNAME
lvremove VGNAME/LVNAME
lvdisplay
lsblk
dmsetup deps /dev/VG/LV
dmsetup table
Extender y Redimensionar
lvextend -LSIZE VGNAME/LVNAME
lvextend -L+SIZE VGNAME/LVNAME
lvextend -l +100%FREE VGNAME/LVNAME
lvreduce --resizefs -LSIZE VGNAME/LVNAME
lvreduce --resizefs -L-SIZE VGNAME/LVNAME
Crear con Porcentajes
lvcreate -l 60%VG VGNAME
lvcreate -l 60%FREE VGNAME
lvcreate -l 100 -n NAME VGNAME /dev/sdf:0-24 /dev/sdc:50-124 #100 physical extends
Crear con Bloques Distribuidos y Espejo
lvcreate -L SIZE -i2 -I64 -n NAME VGNAME
lvcreate -L SIZE -m1 -n NAME VGNAME
lvcreate -L SIZE -m1 --mirrorlog mirrored -n NAME VGNAME
Snapshots
lvcreate -L SIZE -s -n NAME VGNAME/LVNAME
lvconvert --merge VGNAME/LVSNAPNAME
Thin Provision
lvcreate -L 100M -T VGNAME/THINPOOLNAME
lvcreate -V10G -T VGNAME/THINPOOLNAME -n THINVOLUME
Mas Desempenio con Cache en SSD
#/dev/sde1 is a slow device and /dev/sdf1 is a fast device
lvcreate -L 4G -n lv VG /dev/sde1
lvcreate -L 2G -n lv_cache VG /dev/sdf1
lvcreate -L 12M -n lv_cache_meta VG /dev/sdf1 #1000 time smaller than the cache data
lvconvert --type cache-pool --cachemode writethrough --poolmetadata VG/lv_cache_meta VG/lv_cache
lvs -a -o +devices
lvconvert --type cache --cachepool VG/lv_cache VG/lv
===== Archivos =====
/etc/lvm/lvm.conf
/etc/lvm/lvmlocal.conf
/etc/fstab
===== Opciones =====
====== Referencias ======
* https://www.digitalocean.com/community/tutorials/an-introduction-to-lvm-concepts-terminology-and-operations
* https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/deployment_guide/ch-lvm
* https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/lv_overview
* https://www.tecmint.com/manage-and-create-lvm-parition-using-vgcreate-lvcreate-and-lvextend/
* https://www.tecmint.com/lvm-storage-migration/
* https://www.tecmint.com/extend-and-reduce-lvms-in-linux/
* https://unix.stackexchange.com/questions/368007/ubuntu-glusterfs-unable-to-create-thinly-provisioned-volume-from-previously-cre
* https://unix.stackexchange.com/questions/341077/lvm-volume-group-what-are-extents
* https://www.clevernetsystems.com/lvm-snapshots-explained/
* https://www.theurbanpenguin.com/maning-lvm-snapshots/
* https://www.redhat.com/sysadmin/creating-logical-volumes
* https://www.theurbanpenguin.com/striped-lvm-volumes/
* https://www.redhat.com/sysadmin/lvm-vs-partitioning