disk space management - liamlamth/blog GitHub Wiki

create partition

[root@myserver ~]# fdisk /dev/sda
Command (m for help): p
Command (m for help): n
Partition number (1-128, default 1): 1
Do you want to remove the signature? [Y]es/[N]o: Y
Command (m for help): w
alternative: parted
[root@myserver /sys/block/sda/]# echo "$(( $(cat queue/optimal_io_size) + $(cat alignment_offset) / $(cat queue/physical_block_size)))"      ### start
[root@myserver ~]# parted /dev/sdd
(parted) print                                                                                                                               ### or: unit MB print free
(parted) mklabel msdos
(parted) mkpart primary xfs 512 100%                                                                                                         ### mkpart PART-TYPE [FS-TYPE] START END
                                                                                                                                             ### PART-TYPE = "primary", "extended" or "logical"
                                                                                                                                             ### if not use the echo value as start: 
                                                                                                                                             ### >> Warning: The resulting partition is not properly aligned 
                                                                                                                                             ###    for best performance: 1s % 2048s != 0s
                                                                                                                                             ### end can be number or 100%
(parted) quit                                                                                                                                ### check by lsblk

create VG

[root@myserver ~]# vgcreate vgname /dev/sda1

create LV

[root@myserver ~]# lvcreate -L 100G -n lvname vgname
[root@myserver ~]# lvcreate -l 100%FREE -n lvname vgname
WARNING: xfs signature detected on /dev/vgname/lvname at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/vgname/lvname.
  Logical volume "lvname " created.
[root@myserver ~]# mkfs.xfs /dev/mapper/vgname-lvname
[root@myserver ~]# mkdir /mountfolder
[root@myserver ~]# mount /dev/mapper/vgname-lvname /mountfolder
[root@myserver ~]# vi /etc/fstab
/dev/mapper/vgname-lvname  /mountfolder  xfs  defaults  0 0

extend LV

[root@myserver ~]# lvextend -L +150G /dev/mapper/vgname-lvname
  Size of logical volume vgname/lvname changed from 350.00 GiB (89600 extents) to 500.00 GiB (128000 extents).
  Logical volume vgname/lvname successfully resized.
[root@myserver ~]# xfs_growfs /dev/mapper/vgname-lvname 

remove partition

[root@myserver ~]# fdisk -l                                                                  ### check [Disk Flag section >> Type], 
                                                                                             ### which provide hints to know the partition purpose, reference only
[root@myserver ~]# vgreduce vgname /dev/sda2                                                 ### applicable when the partition has extended vg
[root@myserver ~]# vgreduce --removemissing vgname                                           ### applicable when if issue [pvs] and find [unknown]
[root@myserver ~]# fdisk /dev/sdb
Command (m for help): d                                                                      ### check by p
Partition number (1,2, default 2): 2
Command (m for help): w

remove VG

[root@myserver ~]# vgremove /dev/vgname
  Volume group "vgname" successfully removed

remove LV

  • unmount folder
[root@myserver ~]# umount /mountfolder                                                       ### check by [df -h]; when target is busy, check if you are inside that folder
[root@myserver ~]# vi /etc/fstab                                                             ### remove entry in startup mount file

[root@myserver ~]# lvchange -an /dev/mapper/vgname-lvname                                    ### deactivate lv, check by [lsblk]
[root@myserver ~]# lvremove /dev/mapper/vgname-lvname
  Logical volume "lvname" successfully removed

rescan disk size (after enlarged by vmware)

[root@myserver ~]# rescan-scsi-bus.sh
[root@myserver ~]# echo 1 > /sys/block/sda/device/rescan

move partition (pv/vg/lv/mountpoint)

[root@myserver ~]# pvmove -n /dev/vgname/lvname /dev/sda3 /dev/sdb1                         ### pvmove -n [lv to be moved] [current partition] [destination partition]

integrate directory back into parent directory

[root@myserver ~]# mkdir /home2
[root@myserver ~]# mv /home/* /home2/
[root@myserver ~]# umount -fl /home
[root@myserver ~]# lvremove /dev/vg_home/lv_home
[root@myserver ~]# rm -rf /home
[root@myserver ~]# mv /home2 /home

extend inode

  • insufficient space issue could happen in ext filesystem
  • reduce existing file number; or rebuild filesystem to extend inode (harder method)

extend swap

[root@myserver ~]# swapoff -v /dev/mapper/os-swap
[root@myserver ~]# lvextend -L +10G /dev/mapper/os-swap
[root@myserver ~]# mkswap /dev/os/swap
[root@myserver ~]# swapon -va
⚠️ **GitHub.com Fallback** ⚠️