Map new LVM

From wiki.IPBRICK.COM
Revision as of 17:16, 23 April 2018 by Amachado (Talk | contribs)

Jump to: navigation, search

Presentation

IPBRICK.OS v6.3 installed in LVM. Clients decides to map a new HDD to migrate users data. Here we describe the process to prepare a new LVM volume and move an existing homedirs/workareas to the new LVM filesystem.

NOTE

IMPORTANT : this procedure is to be executed at IPBRICK.OS linux command line as super-user (su - root). This procedure is to be executed by a system administrator with some linux console knowledge. The instructions here presented were collected from a real scenario, meanwhile you are required to check, verifiy and adapt to your own installation.

Contents

In the following sections you'll find:

  • Scenarios - list of typical applications
  • Technical procedures

Scenarios

The typical scenario is:

  • one disk for operating system
  • one disk for users data
  • one disk for database binaries

These apply to:

  • FileServer - users data separated from the operating system (OS) installation
  • MailServer - users data separated from the OS
  • iPortalDoc - data warehouse separated from the OS, database binaries in an independente volume


Technical Procedures

In this section we will be working with the following setup:

  • IPBRICK.OS v6.3
  • OS installation using LVM
  • HDD setup:
    • sda - the first HDD - OS installation
    • sdb - the second HDD - for user data
    • sdc - the third HDD - for user data

We will be working with LVM. All physical disks are to be grouped in one new volume group.

Identify Blocks/Disks

LSBLK : helps you identify physical disks and their current assignment

ipbrick:~# lsblk 
NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                            8:0    0    50G  0 disk 
├─sda1                         8:1    0   1.9G  0 part 
└─sda2                         8:2    0  48.1G  0 part 
  ├─vgsystem1-lvos (dm-0)    254:0    0    15G  0 lvm  /
  ├─vgsystem1-lvswap (dm-1)  254:1    0     2G  0 lvm  [SWAP]
  ├─vgsystem1-lvvar (dm-2)   254:2    0    20G  0 lvm  /var
  └─vgsystem1-lvdata1 (dm-3) 254:3    0  11.1G  0 lvm  /srv/data1
sdb                            8:16   0     2T  0 disk 
sdc                            8:32   0     2T  0 disk 
sr0                           11:0    1  1024M  0 rom  
ipbrick:~# 

Partitioning

PARTED : the tool to create partition table and partitions

ipbrick:~# parted /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mktable gpt                                                      
(parted) print                                                            
Model: Msft Virtual Disk (scsi)
Disk /dev/sdb: 2199GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart
Partition name?  []?                                                      
File system type?  [ext2]?                                                
Start? 1                                                                  
End? 2199GB                                                               
(parted) print                                                            
Model: Msft Virtual Disk (scsi)
Disk /dev/sdb: 2199GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2199GB  2199GB

(parted) select /dev/sdc                                                  
Using /dev/sdc
(parted) print                                                            
Error: /dev/sdc: unrecognised disk label                                  
(parted) mktable gpt                                                      
(parted) print                                                            
Model: Msft Virtual Disk (scsi)
Disk /dev/sdc: 2199GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags
                                                               
(parted) mkpart                                                           
Partition name?  []?                                                      
File system type?  [ext2]?                                                
Start? 1                                                                  
End? 2199GB                                                               
(parted) print                                                            
Model: Msft Virtual Disk (scsi)
Disk /dev/sdc: 2199GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2199GB  2199GB

(parted) quit                                                             
Information: You may need to update /etc/fstab.                           

ipbrick:~# 

Check the new blocks:

ipbrick:~# lsblk
NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                            8:0    0    50G  0 disk 
├─sda1                         8:1    0   1.9G  0 part 
└─sda2                         8:2    0  48.1G  0 part 
  ├─vgsystem1-lvos (dm-0)    254:0    0    15G  0 lvm  /
  ├─vgsystem1-lvswap (dm-1)  254:1    0     2G  0 lvm  [SWAP]
  ├─vgsystem1-lvvar (dm-2)   254:2    0    20G  0 lvm  /var
  └─vgsystem1-lvdata1 (dm-3) 254:3    0  11.1G  0 lvm  /srv/data1
sdb                            8:16   0     2T  0 disk 
└─sdb1                         8:17   0     2T  0 part 
sdc                            8:32   0     2T  0 disk 
└─sdc1                         8:33   0     2T  0 part 
sr0                           11:0    1  1024M  0 rom  
ipbrick:~# 

LVM configuration

PVCREATE : initialize the physical volumes

ipbrick:~# pvcreate /dev/sdb1 /dev/sdc1
  Writing physical volume data to disk "/dev/sdb1"
  Physical volume "/dev/sdb1" successfully created
  Writing physical volume data to disk "/dev/sdc1"
  Physical volume "/dev/sdc1" successfully created
ipbrick:~# 

VGCREATE : initialize the volume group

ipbrick:~# vgcreate vgshares /dev/sdb1 /dev/sdc1
  Volume group "vgshares" successfully created
ipbrick:~#

VGDISPLAY : displays information on the volume groups

ipbrick:~# vgdisplay vgshares
  --- Volume group ---
  VG Name               vgshares
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               4.00 TiB
  PE Size               4.00 MiB
  Total PE              1048574
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1048574 / 4.00 TiB
  VG UUID               3htRDP-4EEE-xG24-VBrj-cUYP-dkUW-m1h8Ya
   
ipbrick:~# 

LVCREATE : creates logical volume

ipbrick:~# lvcreate -l 100%FREE -n lvshares vgshares
  Logical volume "lvshares" created
ipbrick:~# 

LVDISPLAY : displays information on the logical volume

ipbrick:~# lvdisplay vgshares
  --- Logical volume ---
  LV Path                /dev/vgshares/lvshares
  LV Name                lvshares
  VG Name                vgshares
  LV UUID                JrTaAv-WYtf-SDCe-tzHl-6e0Z-VAJF-rjV5dn
  LV Write Access        read/write
  LV Creation host, time gestdoc, 2018-04-20 18:02:24 +0100
  LV Status              available
  # open                 0
  LV Size                4.00 TiB
  Current LE             1048574
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:4
   
ipbrick:~# 

FileSystem Configuration

MKFS.EXT4 : initialize filesystem with EXT4 format

ipbrick:~# mkfs.ext4 /dev/vgshares/lvshares 
mke2fs 1.42.5 (29-Jul-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
268435456 inodes, 1073739776 blocks
53686988 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
32768 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848, 512000000, 550731776, 644972544

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

ipbrick:~# 

Test-drive the new filesystem:

ipbrick:~# mount /dev/vgshares/lvshares /mnt/
ipbrick:~# df -h
Filesystem                     Size  Used Avail Use% Mounted on
rootfs                          15G  4.6G  9.4G  33% /
udev                            10M     0   10M   0% /dev
tmpfs                          1.6G  964K  1.6G   1% /run
/dev/mapper/vgsystem1-lvos      15G  4.6G  9.4G  33% /
tmpfs                          5.0M     0  5.0M   0% /run/lock
tmpfs                          3.2G     0  3.2G   0% /run/shm
/dev/mapper/vgsystem1-lvvar     20G  1.5G   18G   8% /var
/dev/mapper/vgsystem1-lvdata1   11G   44M   11G   1% /srv/data1
/dev/mapper/vgsystem1-lvdata1   11G   44M   11G   1% /home1
/dev/mapper/vgsystem1-lvdata1   11G   44M   11G   1% /home2
/dev/mapper/vgsystem1-lvdata1   11G   44M   11G   1% /var/spool/hylafax
/dev/mapper/vgshares-lvshares  4.0T   67M  3.8T   1% /mnt
ipbrick:~# umount /mnt
ipbrick:~# 

FSTAB - Mount at boot time

The final step of this procedure is to register the mountpoint in the fstab file. In this section we provide a samples scenario, you may need to adapt to your own needs. From the manual:

NAME: 
       static information about the filesystems
NAME
       fstab - static information about the filesystems

SYNOPSIS
       /etc/fstab

DESCRIPTION
       The  file  fstab  contains  descriptive  information  about the various file systems.  
       fstab is only read by programs, and not written; it is the duty of the system
       administrator to properly create and maintain this file.  Each filesystem is described 
       on a separate line; fields on each line are  separated  by  tabs  or  spaces.
       Lines  starting  with  '#'  are  comments, blank lines are ignored. The order of records 
       in fstab is important because fsck(8), mount(8), and umount(8) sequentially
       iterate through fstab doing their thing.

T

BLKID : identify blocks id

ipbrick:~# blkid 
/dev/sda2: UUID="exMrHD-qgY3-c8cy-Ao0t-Z6TG-JNiG-L2boKk" TYPE="LVM2_member" 
/dev/mapper/vgsystem1-lvos: LABEL="LVOS" UUID="7f1dd815-0e0e-4148-bf55-e3b443de0afd" TYPE="ext4" 
/dev/mapper/vgsystem1-lvswap: UUID="b6de4b36-9f16-432b-9475-636008e5efed" TYPE="swap" 
/dev/mapper/vgsystem1-lvvar: LABEL="LVVAR" UUID="69a75bac-56e9-4ec6-b3a8-3f31b91019a3" TYPE="ext4" 
/dev/mapper/vgsystem1-lvdata1: LABEL="LVDATA1" UUID="c8c681b9-6cd5-40a1-a075-279b7745ccce" TYPE="ext4" 
/dev/sdc1: UUID="qXYDO1-oExh-O1Bb-3swI-exLi-o8YC-ReAPQb" TYPE="LVM2_member" 
/dev/sdb1: UUID="cuECJ4-w5Hl-PzMd-btZ3-8I49-tcye-VBkS4x" TYPE="LVM2_member" 
/dev/mapper/vgshares-lvshares: UUID="31875c98-c036-4718-ba3e-1d4212fe091b" TYPE="ext4" 
ipbrick:~# 

FSTAB : filesystem fstab file

ipbrick:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc		/proc		proc	defaults		0	0
/dev/mapper/vgsystem1-lvos	/	ext4	errors=remount-ro	0	1
/dev/vgsystem1/lvswap	none	swap	sw	0	0
/dev/fd0	/floppy		auto	user,noauto		0	0
/dev/cdrom	/cdrom		iso9660	ro,user,noauto		0	0
/dev/mapper/vgsystem1-lvvar	/var	ext4	defaults	0	2
/dev/mapper/vgsystem1-lvdata1	/srv/data1	ext4	defaults,usrquota,grpquota,user_xattr,acl	0	2
/srv/data1/home1   /home1   none     bind                0      0
/srv/data1/home2   /home2   none     bind                0      0
LABEL=ipbrick-D	/opt/system/backupDB	auto	user,noauto		0	0
/home1/_fax   /var/spool/hylafax   none     bind                0      0
ipbrick:~# 

Create mount point, update fstab and do the mount.

ipbrick:~# mkdir /home3
ipbrick:~# echo "/dev/mapper/vgshares-lvshares   /home3   ext4   defaults,usrquota,grpquota,user_xattr,acl  0   2" >> /etc/fstab
ipbrick:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc		/proc		proc	defaults		0	0
/dev/mapper/vgsystem1-lvos	/	ext4	errors=remount-ro	0	1
/dev/vgsystem1/lvswap	none	swap	sw	0	0
/dev/fd0	/floppy		auto	user,noauto		0	0
/dev/cdrom	/cdrom		iso9660	ro,user,noauto		0	0
/dev/mapper/vgsystem1-lvvar	/var	ext4	defaults	0	2
/dev/mapper/vgsystem1-lvdata1	/srv/data1	ext4	defaults,usrquota,grpquota,user_xattr,acl	0	2
/srv/data1/home1   /home1   none     bind                0      0
/srv/data1/home2   /home2   none     bind                0      0
LABEL=ipbrick-D	/opt/system/backupDB	auto	user,noauto		0	0
/home1/_fax   /var/spool/hylafax   none     bind                0      0
/dev/mapper/vgshares-lvshares   /home3   ext4   defaults,usrquota,grpquota,user_xattr,acl  0   2
ipbrick:~# mount /home3
ipbrick:~# df -h
Filesystem                     Size  Used Avail Use% Mounted on
rootfs                          15G  4.6G  9.4G  33% /
udev                            10M     0   10M   0% /dev
tmpfs                          1.6G  964K  1.6G   1% /run
/dev/mapper/vgsystem1-lvos      15G  4.6G  9.4G  33% /
tmpfs                          5.0M     0  5.0M   0% /run/lock
tmpfs                          3.2G     0  3.2G   0% /run/shm
/dev/mapper/vgsystem1-lvvar     20G  1.5G   18G   8% /var
/dev/mapper/vgsystem1-lvdata1   11G   44M   11G   1% /srv/data1
/dev/mapper/vgsystem1-lvdata1   11G   44M   11G   1% /home1
/dev/mapper/vgsystem1-lvdata1   11G   44M   11G   1% /home2
/dev/mapper/vgsystem1-lvdata1   11G   44M   11G   1% /var/spool/hylafax
/dev/mapper/vgshares-lvshares  4.0T   67M  3.8T   1% /home3
ipbrick:~# 

Initialize basic structure:

ipbrick:~# cd /home3/
ipbrick:/home3# mkdir _accounts _shares
ipbrick:/home3# ls -al
total 32
drwxr-xr-x  5 root root  4096 Apr 20 18:15 .
drwxr-xr-x 29 root root  4096 Apr 20 18:12 ..
drwxr-xr-x  2 root root  4096 Apr 20 18:15 _accounts
drwx------  2 root root 16384 Apr 20 18:05 lost+found
drwxr-xr-x  2 root root  4096 Apr 20 18:15 _shares
ipbrick:/home3#