Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
LVMNotes
Edit
PageHistory
Diff
Info
LikePages
You are viewing an old revision of this page.
View the current version
.
!!Setting up [LVM] under Linux on a single drive You will want to make sure Multi device support ([RAID] and [LVM]) is enabled and LVM support is compiled into your kernel. You could build it as a module and load it from your initrd, but you don't really need to go to the effort. !!Scenario You have a 36gb disc (this might be a RAID logical volume already, but the system sees it as one disc with 36gb on it). You want to install partitions for /usr, /var etc (smart) but you're not sure what sizes they need to be and you will want to be able to resize them in future. !!Solution At install time, create a small (<100mb) /boot, swap, and a reasonable (4-6gb) / partition. Leave the rest of the space unpartitioned. Make sure LVM is compiled into your kernel, and you have the LVM tools installed (Debian: apt-get install lvm10). !Create a PV[1] partition on your drive # fdisk /dev/sda Set the type of this partition (which, in my case, is primary partition 4 and eats the rest of my disc) to 8e - Linux LVM. !Prepare the partition This creates a volume group descriptor area (VGDA) at the start of the disks. # pvcreate /dev/sda4 pvcreate -- physical volume "/dev/sda4" successfully created !Create a volume group (VG)[2] This volume group can contain multiple discs, but in this case it only uses one. # vgcreate lvmarray /dev/sda4 vgcreate -- INFO: using default physical extent size 4 MB vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte vgcreate -- doing automatic backup of volume group "lvmarray" vgcreate -- volume group "lvmarray" successfully created and activated # vgdisplay Confirm that the VG size is the right amount for the size of the partition. !Create some LVs [3] # lvcreate -L20G -nhome lvmarray lvcreate -- doing automatic backup of "lvmarray" lvcreate -- logical volume "/dev/lvmarray/home" successfully created # lvcreate -L5G -nvar lvmarray lvcreate -- doing automatic backup of "lvmarray" lvcreate -- logical volume "/dev/lvmarray/var" successfully created # lvcreate -L5G -nusr lvmarray lvcreate -- only 793 free physical extents in volume group "lvmarray" # lvcreate -L793 -nusr lvmarray lvcreate -- rounding size up to physical extent boundary lvcreate -- doing automatic backup of "lvmarray" lvcreate -- logical volume "/dev/lvmarray/usr" successfully created !Create filesystems on your LVs # for i in home var usr; do mke2fs -j /dev/lvmarray/$i; done (Now would be a good time to learn about label based mounting!) !Mount your LVs mount /dev/lvmarray/home /home You will of course want to move everything from /home first, and add them to fstab(5) etc... To move your partitions, you'll probably want to be in runlevel 1. !!Resizing logical volumes Oops! Just created 20g /home, 5gb /var and 860mb /usr. So lets take 4gb from home and add it to usr. # umount /home # e2fsadm -L-4G /dev/lvmarray/home # mount /home # umount /usr # e2fsadm -L+4G /dev/lvmarray/usr # mount /usr e2fsadm is a utility that comes with LVM that lets you automatically fsck, resize FS and then resize LV. # e2fsadm -L+1G /foo is equivalent to the two commands: # lvextend -L+1G /foo # resize2fs /foo You need to have e2fsprogs installed for this to work (but you probably needed it to make the FS to start with.) When the time comes to learn to resize [LVM] partitions, there'll be more. Until then, see http://tldp.org/HOWTO/LVM-HOWTO ----- !!Terminology [1] __PV__: Physical Volume; a disc or a partition on a disc. [2] __VG__: Volume Group; a group of one-or-more physical volumes across which you get a "virtual disk", a space to create logical volumes in. [3] __LV__: Logical Volume; something you eventually create an FS on.
One page links to
LVMNotes
:
LVM