A Beginner's Guide To LVM - Page 3

Until now we have three logical volumes, but we don't have any filesystems in them, and without a filesystem we can't save anything in them. Therefore we create an ext3 filesystem in share, an xfs filesystem in backup, and a reiserfs filesystem in media:

mkfs.ext3 /dev/fileserver/share

server1:~# mkfs.ext3 /dev/fileserver/share
mke2fs 1.40-WIP (14-Nov-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
5242880 inodes, 10485760 blocks
524288 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
320 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

mkfs.xfs /dev/fileserver/backup

server1:~# mkfs.xfs /dev/fileserver/backup
meta-data=/dev/fileserver/backup isize=256    agcount=8, agsize=163840 blks
         =                       sectsz=512   attr=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks, unwritten=1
naming   =version 2              bsize=4096
log      =internal log           bsize=4096   blocks=2560, version=1
         =                       sectsz=512   sunit=0 blks
realtime =none                   extsz=65536  blocks=0, rtextents=0

mkfs.reiserfs /dev/fileserver/media

server1:~# mkfs.reiserfs /dev/fileserver/media
mkfs.reiserfs 3.6.19 (2003 www.namesys.com)

A pair of credits:
Alexander  Lyamin  keeps our hardware  running,  and was very  generous  to our
project in many little ways.

Chris Mason wrote the journaling code for V3,  which was enormously more useful
to users than just waiting until  we could create a wandering log filesystem as
Hans would have unwisely done without him.
Jeff Mahoney optimized the bitmap  scanning code for V3,  and performed the big
endian cleanups.


Guessing about desired format.. Kernel 2.6.17-2-486 is running.
Format 3.6 with standard journal
Count of blocks on the device: 262144
Number of blocks consumed by mkreiserfs formatting process: 8219
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 2bebf750-6e05-47b2-99b6-916fa7ea5398
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
        ALL DATA WILL BE LOST ON '/dev/fileserver/media'!
Continue (y/n):y
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok

Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
kernel based on 2.4.9, when you use reiserFS. Have fun.

ReiserFS is successfully created on /dev/fileserver/media.

Now we are ready to mount our logical volumes. I want to mount share in /var/share, backup in /var/backup, and media in /var/media, therefore we must create these directories first:

mkdir /var/media /var/backup /var/share

Now we can mount our logical volumes:

mount /dev/fileserver/share /var/share
mount /dev/fileserver/backup /var/backup
mount /dev/fileserver/media /var/media

Now run

df -h

You should see your logical volumes in the output:

server1:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              19G  665M   17G   4% /
tmpfs                  78M     0   78M   0% /lib/init/rw
udev                   10M   88K   10M   1% /dev
tmpfs                  78M     0   78M   0% /dev/shm
/dev/sda1             137M   17M  114M  13% /boot
/dev/mapper/fileserver-share
                       40G  177M   38G   1% /var/share
/dev/mapper/fileserver-backup
                      5.0G  144K  5.0G   1% /var/backup
/dev/mapper/fileserver-media
                      1.0G   33M  992M   4% /var/media

Congratulations, you've just set up your first LVM system! You can now write to and read from /var/share, /var/backup, and /var/media as usual.

We have mounted our logical volumes manually, but of course we'd like to have them mounted automatically when the system boots. Therefore we modify /etc/fstab:

mv /etc/fstab /etc/fstab_orig
cat /dev/null > /etc/fstab

vi /etc/fstab

Put the following into it:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/sda2       /               ext3    defaults,errors=remount-ro 0       1
/dev/sda1       /boot           ext3    defaults        0       2
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
/dev/fileserver/share   /var/share     ext3       rw,noatime    0 0
/dev/fileserver/backup    /var/backup      xfs        rw,noatime    0 0
/dev/fileserver/media    /var/media      reiserfs   rw,noatime    0 0

If you compare it to our backup of the original file, /etc/fstab_orig, you will notice that we added the lines:

/dev/fileserver/share   /var/share     ext3       rw,noatime    0 0
/dev/fileserver/backup    /var/backup      xfs        rw,noatime    0 0
/dev/fileserver/media    /var/media      reiserfs   rw,noatime    0 0

Now we reboot the system:

shutdown -r now

After the system has come up again, run

df -h

again. It should still show our logical volumes in the output:

server1:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              19G  665M   17G   4% /
tmpfs                  78M     0   78M   0% /lib/init/rw
udev                   10M   88K   10M   1% /dev
tmpfs                  78M     0   78M   0% /dev/shm
/dev/sda1             137M   17M  114M  13% /boot
/dev/mapper/fileserver-share
                       40G  177M   38G   1% /var/share
/dev/mapper/fileserver-backup
                      5.0G  144K  5.0G   1% /var/backup
/dev/mapper/fileserver-media
                      1.0G   33M  992M   4% /var/media

Share this page:

46 Comment(s)

Add comment

Comments

From: at: 2007-01-16 12:59:36

First of all i'll shall congratulate you for the great guide.

I'll rather call it a "Introduction Guide" than a "Beginner Guide" , never than less it's very usefull.

Instead of having LVM on top ou those 2 RAID-1 devices and considering the disks capacity, you can use 4 disk RAID-5 system thus have more 25% usable space.

This will make the process more complex but you will be rewarded with more 80GB ;)

This must be done after you replace the first 2 Harddrives.

  • Initilize only one disk, let's say /dev/sdc
    • pvcreate /dev/sdc
  • Add the 80GB disk to the volume
    • vgextend fileserver /dev/sdc
  • pvmove all all volumes from the md[01] devices to the 80GB disk
    • pvmove /dev/md0 /dev/md1
      • note: this is very slow better use -v for periodic update
  • Remove all other devices from the volume
    • vgreduce fileshare /dev/md0 /dev/md1
  • Reboot and replace the disks
  • Initialize the new disks for raid
    • fdisk /dev/sdb
    • fdisk /dev/sdd
    • fdisk /dev/sde 
  • create the raid-5 with one missing device
    • mdadm --create /dev/md0 -a -l 5 -n 4 /dev/sdb1 /dev/sdd1 /dev/sde1 missing
  • Add the new md0 device to the Volume
    • pvcreate /dev/md0 && vgextend fileserver /dev/md0
  • Move the data from the 80GB disk
    • pvmove /dev/sdc
  • (wait)
  • Remove the 80GB disk from the volume group
    • vgreduce fileshare /dev/sdc
  • Initialize the disk for RAID
    • fdisk /dev/sdc and change the type to fd (Linux raid autodetect)
  • Add the disk to the RAID md0
    • mdadm --manage /dev/md0 -add /dev/sdc1
  • Wait for full sync
    • cat /proc/mdstat
  • And you are now with a 240GB RAID-5 volume
    • df -h

A 4 disk RAID-5 is not as performant as the RAID-1 but that's the trade off .

 

José Borges Ferreira 

From: lingeswaran at: 2013-08-14 19:00:07


Step by Step Tutorial available in UnixArena.

 http://www.unixarena.com/2013/08/how-to-install-lvm-on-linux-and-disk.html

http://www.unixarena.com/2013/08/linux-lvm-volume-group-operations.html

http://www.unixarena.com/2013/08/linux-lvm-volume-creation-operation.html 

 

From: at: 2007-01-16 13:06:55

Be aware that when you initialize a device into a Volume or into a md RAID some unique IDs are assign and written into the first sector of that device. When you do some testing on some virtual enviorment such as VMWare you may ran into this problem. So as a part of the initilization process you better do a

#dd if=/dev/zero of=/dev/diskname bs=1k count=1
#blockdev --rereadpt /dev/sdc

before everything else.

 

José Borges Ferreira 

From: at: 2007-01-18 09:55:22

Source /dev/sda, destination /dev/sdb

 sfdisk -d /dev/sda|sfdisk /dev/sdb

From: at: 2007-01-19 17:00:40

I'm very sorry if I overlooked a note or a posting on this, but how do I set the CLI keyboard layout to qwerty (us 101/104) on Debian Etch.

I immediately ran into problems, it seems your vmware image was made using a german keyboard layout (?)

 

Thanx! 

From: admin at: 2007-01-20 21:11:31

Run

apt-get install console-data console-tools debconf
dpkg-reconfigure console-data

or connect ot the virtual machine with an SSH client such as PuTTY. In PuTTY you use your client machine's keymap.

From: tonyg at: 2009-12-06 05:23:18

I just wanted to say THANK YOU for this resource.  I've been referring back to this article for the past 2 years now, it's saved my butt, and my data, a few times now.  Thanks!!!

From: Sun_Blood at: 2011-02-16 18:36:25

Just one word. GREAT!

This was a perfect start for me to learn on hot to use LVM. Now I'll setup my new NAS =)

From: Anonymous at: 2011-08-30 15:48:07

Out of the 6 drives on the image - drives 3 and 4 appear to be corrupt on my VM VirtualBox Manager.

From: Mark at: 2012-10-14 12:18:44

What a great introduction to LVM!  Thank you so much for taking the trouble to put all this together.

From: Ramesh at: 2013-11-06 13:29:05

Thank you very much for the Excellent article. I appreciate your effort. 

From: Anonymous at: 2013-11-13 23:14:48

Thank you for this guide.  I just ran into lvm at work and this is extremely helpful.
I am trying out the vm you provided for practice.  Login info in howtoforge is incorrect.

the user is: root
password : howtoforge

 

 

From: Anonymous at: 2014-01-22 16:20:13

I wanted to say thank you for the great and useful guide. On the internet we should find articles like this. Well done!!!

From: pointer2null at: 2014-12-21 22:17:39

I've just had a quick read of the tutorial and will run through it soon.

One thing I do notice is you give very clear instructions on how to execute each stage, but no explanation of why it is being done( and to a smaller degree, or what is accomplished in each step).

 

Still, it's a valuable resource. :)

From: Anonymous at: 2014-12-25 09:11:43

Try to use EasyRSH in Google  Play - it's quick reference guide for Solaris, HPUX, Redhat OSs

From: Anonymous at: 2010-08-18 19:50:40

If you get this error, you'll need to "deregister" the partition table from the kernel.

 kpartx -d /dev/fileserver/films

 lvremove /dev/fileserver/films

From: Andre de Araujo at: 2013-12-03 21:45:09

Correct is: #lvextend -L  +1.5G  /dev/fileserver/media

From: Adrian Varan at: 2014-02-08 21:00:40

"+" is optional (read the manual). If you use +1.5G then the 1.5G is added to the actual size (1.5+1=2.5G), without "+" the 1.5G represents the new absolute value of the logical volume.

From: Anonymous at: 2010-05-03 14:31:21

Great guide!

Thanks a lot - helped me out :-)

From: Navin Pathak at: 2011-03-17 12:55:15

Dear Freinds,

I have started learn linux from few days and now days I am learning LVM I have search a lot of document and finaly choose your site and start working today through your guide line for LVM I have completed today near entry to fstab of logical valume so I feel very well with your documents.

Thanks a lot you all who spend a time to cretae such a nice lvm real practical.

my one suggetion is that please explain the term of PE,LE and metadata.

again thanks.

 

Regards

Navin Pathak

TTSL India.

From: SN at: 2011-04-14 07:54:26

There's a Zimbra backup script based on LVM, I have no idea of LVM so I searched and found this amazing topic. Thanks so much for your work.

Regards,

SN

From: jonathan young at: 2012-01-29 05:39:55

This guide is so idiot-proofed and full of explanations.  Thank you so much, you saved my bacon. I am a beginning linux administrator (as a sideline to being a web architect) and LVM is so brand new to me, I was scared to resize lv's and now i'm like "wow, this is easy" 

 thank you so much!

 

 

From: acname at: 2012-12-09 09:26:45

perfect manual. thanx a lot

From: Anonymous at: 2014-05-05 00:16:53

need to not use if fdisk if drive is over 2 TB though.

From: Sebastian at: 2014-12-15 18:35:55

Thank you very much for this though tutorial. Helped alot!

From: Robert at: 2008-11-06 23:49:50

Bloody well excellent lvm2 guide.

Thank You.

From: Chris at: 2009-09-26 03:58:05

Hi

nice guide, and the vmware image is a great idea.

in your first RAID example, it looks like you've missed some of the pvmove arguments (it just has the source volume, not the dest volume).

cheers

 

 

From: Anonymous at: 2011-08-09 06:41:12

Apparently not - I was confused about that too at first, but actually working through the tutorial confirmed that this is not the case.

A quick check of the LVM docs reveals that pvmove with no arguments (other than the device) moves all the data on the device to free space in the volume group, wherever it can find it.

It's basically "move this data to anywhere else" as opposed to "move this data to this particular place" which is what we were doing with the previous uses of pvmove.

From: ilayaraja at: 2010-02-25 12:41:52

very very usefull for beginers

From: oldtimer_mando at: 2012-08-17 04:59:35

Awesome!  Thanks!

From: Imran at: 2013-06-04 12:49:54

really a very nice and useful guide for beginner, Thanks you so much

 

 

From: Sajid at: 2014-07-18 22:35:29

Excellent details and easy to follow, great work!

From: MTH at: 2009-10-14 02:40:08

Fantastic guide, covers many scenarios (adding drives, removing drives, resizing, etc).  I find myself always coming back to double check my LVM setups.  A+

From: at: 2007-01-19 06:16:45

Great howto, Falko.

I have needed this in the past and i have already bookmarked it for the next time.  I just don't work withthis stuff enough to memorize it.

You have a real talent for technical writing. 

Thanks,

From: at: 2008-09-13 06:30:55

This was exactly what I needed to get my home file server running on LVM.  I will need this again when I add disks and again when I move everything over to raid.

From: Tormod at: 2008-10-05 11:13:55

Excellent howto! I just noticed that the example fstab entries look wrong (in both examples): /dev/fileserver/share versus /dev/mapper/fileserver-share

From: Tormod at: 2008-10-06 19:35:07

Well, scratch that. It is correct anyway, silly me just had to try it out to see: /dev/fileserver/share is a soft link to /dev/mapper/fileserver-share

From: Anonymous at: 2008-10-05 07:34:30

I have about 2 years of experience using RAID and LVM, and I must say - in all of the literature and documentation I've ever encountered, _none_ of it ever came close to making things so simple and clear as you have just done. You've articulated the ideas of logical volumes, volume groups, and physical volumes well, and have provided concise examples.

Well done.

From: Craig at: 2011-05-26 16:39:00

One of the best howto I have come across -- wish they were all this good.

From: Gisli at: 2012-09-04 15:32:04

I agree with everyone here. Best howto I've come accross! Everything right to the point and with examples. Nice work!!

From: Vahid Pazirandeh at: 2011-07-01 18:50:57

Wow. Very well written howto. Well thought out examples. Thanks a lot to all who were involved.

I agree with an earlier comment - I have used Linux for many years and have read through lots of tutorials. This was so easy to read! :)

From: Anonymous at: 2011-06-30 04:11:11

In my 15 years with linux I have never, ever, seen such good howto. Very easy to follow and understand. In 30 mins my confidence level on LVM/RAID was boosted from 0 to 80.

 I wish there were more howtos like this!

From: csg at: 2011-09-16 12:46:18

Congratulations for this hard work, very clear and concise.

Looking forward to have it running.

Thanks for your work.

From: Gianluca at: 2012-01-01 21:15:07

Excellent HowTo, pls complete this guide with LVM snapshot examples.

From: Anonymous at: 2014-02-17 15:08:20

excellent tutorial that briefs how to manage disks in linux platforms..Thanks for your effort to have this tutorial get prepared..

From: albert gharbi at: 2015-03-18 14:52:08

Thank a lots. very excellent.that was very usefull and practical.