mirror of
https://github.com/IntenseWebs/servercode.git
synced 2026-08-26 13:17:09 -05:00
144 lines
5.9 KiB
Plaintext
Executable File
144 lines
5.9 KiB
Plaintext
Executable File
# https://linuxconfig.org/linux-lvm-logical-volume-manager
|
|
# apt-get install lvm2 # sudo dnf install lvm2
|
|
# fdisk -l
|
|
# lsblk # lsblk -fe7 # lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MODEL
|
|
# blkid
|
|
# parted -l # parted /dev/sde u s p
|
|
# df -hT # df -TH
|
|
# du -sh /home # du -h /var | sort -hr | head -n10
|
|
# Check FREE SPACE # sfdisk --list-free /dev/vda # hwinfo --short --block # cat /proc/partitions #
|
|
# Check SPEED # sudo hdparm -t --direct /dev/nvme0n1p1
|
|
# pvs, vgs, lvs, pvdisplay, vgdisplay, lvdisplay
|
|
----------------------------------------------------------
|
|
# WIPE DESTROY DISK CONTENTS
|
|
# shred -n 5 -vz /dev/sdb
|
|
# scrub -p dod /dev/sdb
|
|
# umount /dev/vgiso/iso && umount /dev/vgvm/vm && umount /dev/vgbackups/backups
|
|
# dd if=/dev/zero of=/dev/sdb bs=512 count=1
|
|
----------------------------------------------------------
|
|
# PARTITION ON CMD LINE
|
|
# cfdisk /dev/sdb
|
|
fdisk /dev/sdb # then m, p, g, n, w, q
|
|
Device Start End Sectors Size Type
|
|
/dev/sdb1 419432448 838862847 419430400 200G Linux filesystem
|
|
/dev/sdb2 838862848 1048578047 209715200 100G Linux filesystem
|
|
/dev/sdb3 1048578048 3907028991 2858450944 1.3T Linux filesystem
|
|
mkfs.ext4 -L VM /dev/sdb1
|
|
mkfs.ext4 -L ISO /dev/sdb2
|
|
mkfs.ext4 -L BACKUPS /dev/sdb3
|
|
----------------------------------------------------------
|
|
# CREATE LVM VOLUME(s)
|
|
pvcreate /dev/sdb1
|
|
vgcreate vgvm /dev/sdb1
|
|
lvcreate vgvm -l 100%FREE -n vm
|
|
pvcreate /dev/sdb2
|
|
vgcreate vgiso /dev/sdb2
|
|
lvcreate vgiso -l 100%FREE -n iso
|
|
pvcreate /dev/sdb3
|
|
vgcreate vgbackups /dev/sdb3
|
|
lvcreate vgbackups -l 100%FREE -n backups
|
|
# lvcreate vgextra-vm -L 500G -n vg-vm vgextra
|
|
# lvcreate vgextra-backups -L 900G -n vg-backups vgextra
|
|
lvdisplay
|
|
mkfs.ext4 -m 0 /dev/vgvm/vm
|
|
mkfs.ext4 -m 0 /dev/vgiso/iso
|
|
mkfs.ext4 -m 0 /dev/vgbackups/backups
|
|
mkdir /iso && mkdir /vm && mkdir /backups
|
|
vi /etc/fstab
|
|
/dev/vgiso/iso /iso ext4 defaults 0 0
|
|
/dev/vgvm/vm /vm ext4 defaults 0 0
|
|
/dev/vgbackups/backups /backups ext4 defaults 0 0
|
|
systemctl daemon-reload
|
|
mount -a
|
|
----------------------------------------------------------
|
|
# REMOVE LVM VOLUME # df -hT # vi /etc/fstab
|
|
umount /dev/vgiso/iso && umount /dev/vgvm/vm && umount /dev/vgbackups/backups
|
|
lvchange -an /dev/vgiso/iso && lvchange -an /dev/vgvm/vm && lvchange -an /dev/vgbackups/backups
|
|
lvremove /dev/vgiso/iso && lvremove /dev/vgvm/vm && lvremove /dev/vgbackups/backups
|
|
lvscan
|
|
vgremove vgiso && vgremove vgvm && vgremove vgbackups
|
|
pvremove /dev/sdd1 --force --force && pvremove /dev/sdd2 --force --force && pvremove /dev/sdd3 --force --force
|
|
----------------------------------------------------------
|
|
# RESIZE LVM AS ROOT: https://www.golinuxcloud.com/lvm-shrink-logical-volume/
|
|
df -hT /home
|
|
lsblk -f
|
|
umount /home
|
|
fsck -f /dev/mapper/pg--vg-home
|
|
resize2fs /dev/mapper/pg--vg-home 5G
|
|
lvreduce -r -L 5G /dev/mapper/pg--vg-home
|
|
mount /dev/mapper/pg--vg-home /home
|
|
|
|
# Extend the logical volume zeus-vg/var by 4G
|
|
lvextend -L+4G /dev/mapper/zeus--vg-var
|
|
# resize the ext4 filesystem in logical volume zeus-vg/var to the new volume size
|
|
resize2fs /dev/mapper/zeus--vg-var
|
|
# lvextend --resizefs -l +100%FREE /dev/mapper/vg_debian-lv_root
|
|
----------------------------------------------------------
|
|
# SHRINK REDUCE LVM GROUP AS ROOT:https://unix.stackexchange.com/questions/67702/how-to-reduce-volume-group-size-in-lvm
|
|
# https://www.rootusers.com/lvm-resize-how-to-decrease-an-lvm-partition/
|
|
sudo lvresize --verbose --resizefs -L -150G /dev/ubuntu/root
|
|
sudo pvresize --setphysicalvolumesize {any size here} /dev/sda5
|
|
|
|
# The last command, pvresize, may yield the error
|
|
# /dev/sda5: cannot resize to xxxxx extents as later ones are allocated.
|
|
# You have to rearrange the unallocated space at the end of the LVM. That means after root and swap_1 partition. You can see the current arrangement of space with this command
|
|
|
|
pvs -v --segments /dev/sda5
|
|
pvs -v --segments /dev/nvme0n1p3
|
|
|
|
pvs will show output like this
|
|
|
|
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx+1 root 0 linear /dev/sda:0-xxx
|
|
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx+1 iii 0 free
|
|
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy jjj swap 0 linear /dev/sda5:yyyy-end
|
|
|
|
Now use pvmove to remove external fragmentation:
|
|
|
|
sudo pvmove --alloc anywhere /dev/sda5:yyyy-end
|
|
|
|
pvs -v --segments /dev/sda5
|
|
|
|
should show the new order of volumes:
|
|
|
|
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx+1 root 0 linear /dev/sda:0-xxx
|
|
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx+1 iii swap 0 linear /dev/sda5:xxx+1-yyyy
|
|
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy+1 end 0 free
|
|
pvs -v --segments /dev/nvme0n1p3
|
|
|
|
After that, use GParted and resize the LVM to the maximum used area. The rest will be in unallocated space.
|
|
----------------------------------------------------------
|
|
#RESIZE ext4 - # unmount /home because an ext4 filesystem cannot be reduced while mounted
|
|
umount /home
|
|
fsck -f /dev/mapper/zeus--vg-home
|
|
resize2fs /dev/mapper/zeus--vg-home 50G
|
|
# reduce the logical volume zeus-vg/home to 50G
|
|
lvreduce -L50G /dev/mapper/zeus--vg-home
|
|
# remount /home
|
|
mount /home
|
|
|
|
# MOUNT OTHER DRIVES - GET UUID by blkid & Edit /etc/fstab
|
|
UUID=24e22f8f-5218-4c1c-bb44-970c0a7723fa /2TBSEAGATE ext4 defaults 0 2
|
|
UUID=6e291f1f-9640-420a-8fdc-6468459bcf8d /1TBNVME ext4 defaults 0 2
|
|
|
|
# cd/media
|
|
# mkdir 2TBSEAGATE
|
|
# mkdir 1TBNVME
|
|
# cd /etc
|
|
# mkdir backup
|
|
# cp /etc/fstab /etc/backup/fstab
|
|
# vi /etc/fstab
|
|
# /dev/sda1 /media/2TBSEAGATE ext4 defaults 0 2
|
|
# /dev/nvme1n1p1 /media/1TBNVME ext4 defaults 0 2
|
|
----------------------------------------------------------
|
|
# CREATE NEW SNAPSHOT
|
|
lvcreate /dev/mapper/<SOURCE VOLUMEGROUP NAME> -L 1G -s -n snapshot_name
|
|
lvs
|
|
# Mount a snapshot
|
|
mount /dev/mapper/vg_extra-web_snapshot_20240624 /mnt/extra/snapshot
|
|
# Restore a snapshot, Umount the original volume:
|
|
umount /path/to/mounted/logical-volume
|
|
lvconvert --merge /dev/mapper/snapshot_name
|
|
# Deactivate/reactivate to fresh it:
|
|
lvchange -an /dev/mapper/vg_extra-lv_web
|
|
lvchange -ay /dev/mapper/vg_extra-lv_web
|