Linux/Unix2019. 4. 17. 03:00

이번에는 리눅스에 추가한 하드디스크로 LVM을 만드는걸 포스팅 해본다


먼저 간단하게 요약 해보면 (rhel ver6 기준)


1. 하드디스크 추가


2. 추가한 디스크 파티션을 LVM 타입(8e)으로 생성


3. 물리불륨생성


4. 물리불륨을 불륨그룹에 추가


5. 볼륨그룹에서 논리볼륨으로 다시 할당


6. 포맷(EXT4) 을 한뒤 OS에 마운트



1. 먼저 OS 초기 디스크 상태

[root@vmsvr-6u8 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_vmsvr6u8-lv_root
                       18G  3.0G   14G  19% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             477M   35M  418M   8% /boot
cs

먼저 OS을 기본으로 설치 하고난 후 상태 df 명령어를 이용하여 확인.


2. fdisk 추가된 하드디스크 확인


[root@vmsvr-6u8 ~]# fdisk -l
 
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ed063
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM
 
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
 
 
Disk /dev/mapper/vg_vmsvr6u8-lv_root: 18.9 GB, 18865979392 bytes
255 heads, 63 sectors/track, 2293 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
 
 
Disk /dev/mapper/vg_vmsvr6u8-lv_swap: 2080 MB, 2080374784 bytes
255 heads, 63 sectors/track, 252 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
cs


fdisk -l 명령어를 이용하여 /dev/sdb 하드디스크가 8G 짜리가 추가되어 있는걸 확인 할 수 있다



3. fdisk로 파티션 LVM(8e)타입을 지정


[root@vmsvr-6u8 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x85fdf936.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
 
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
 
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1): (enter)
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): (enter)
Using default value 1044
 
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
 
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.
cs


fdisk를 이용하여 추가된 하드디스크 파티션을 LVM 타입 8e로 구성한다



4. fdisk로 파티션 확인


[root@vmsvr-6u8 ~]# fdisk -l
 
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ed063
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM
 
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x85fdf936
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1044     8385898+  8e  Linux LVM
 
Disk /dev/mapper/vg_vmsvr6u8-lv_root: 18.9 GB, 18865979392 bytes
255 heads, 63 sectors/track, 2293 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
 
 
Disk /dev/mapper/vg_vmsvr6u8-lv_swap: 2080 MB, 2080374784 bytes
255 heads, 63 sectors/track, 252 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
cs


생성된 파티션은 뒤에 숫자가 붙어서 /dev/sdb1로 표시 된다



5. 물리볼륨 생성한다 (pvcreate)


[root@vmsvr-6u8 ~]# pvcreate /dev/sdb1 
  Physical volume "/dev/sdb1" successfully created
 
[root@vmsvr-6u8 ~]# pvscan 
  PV /dev/sda2   VG vg_vmsvr6u8     lvm2 [19.51 GiB / 0    free]
  PV /dev/sdb1                      lvm2 [8.00 GiB]
  Total: 2 [27.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 1 [8.00 GiB]
cs


pvcreate [디바이스명] 명령어 형태로 물리볼륨을 생성한다

그후 pvscan 으로 확인을 한다



6. 볼륨그룹에 설정 (vgcreate)


[root@vmsvr-6u8 ~]# vgcreate Volgroup01 /dev/sdb1        
  Volume group "Volgroup01" successfully created
 
[root@vmsvr-6u8 ~]# vgdisplay 
  --- Volume group ---
  VG Name               Volgroup01
  System ID             
  Format                lvm2
  Metadata Areas        1
  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                1
  Act PV                1
  VG Size               8.00 GiB
  PE Size               4.00 MiB
  Total PE              2047
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2047 / 8.00 GiB
  VG UUID               nq9XJ3-06EY-pq5r-6zCj-sx66-exRB-CwnB0Z
   
  --- Volume group ---
  VG Name               vg_vmsvr6u8
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               19.51 GiB
  PE Size               4.00 MiB
  Total PE              4994
  Alloc PE / Size       4994 / 19.51 GiB
  Free  PE / Size       0 / 0   
  VG UUID               AEEtoW-v37n-2nMi-mmwD-BI1a-VIyN-2ZZs2t
cs


vgcreate [볼륨명] [디바이스명] 명령어 형태로 볼륨그룹 생성한다

그후 vgdisplay 으로 확인을 한다 Free PE가 모두 할당 안되어 있는걸 확인 할 수 있다



7. 논리 볼륨을 설정한다 (lvcreate)


[root@vmsvr-6u8 ~]# lvcreate -l 100%FREE -n data Volgroup01
  Logical volume "data" created.
 
[root@vmsvr-6u8 ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/Volgroup01/data
  LV Name                data
  VG Name                Volgroup01
  LV UUID                HS9s91-7fG7-4Xg9-ZIoy-jf9J-VnPR-8gnLWl
  LV Write Access        read/write
  LV Creation host, time vmsvr-6u8, 2019-04-17 00:07:59 +0900
  LV Status              available
  # open                 0
  LV Size                8.00 GiB
  Current LE             2047
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/vg_vmsvr6u8/lv_root
  LV Name                lv_root
  VG Name                vg_vmsvr6u8
  LV UUID                O5kfud-g7QI-3cr9-rPnb-XbD2-f8n6-KxjNql
  LV Write Access        read/write
  LV Creation host, time vmsvr-6u8, 2019-04-16 19:25:52 +0900
  LV Status              available
  # open                 1
  LV Size                17.57 GiB
  Current LE             4498
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Path                /dev/vg_vmsvr6u8/lv_swap
  LV Name                lv_swap
  VG Name                vg_vmsvr6u8
  LV UUID                IMWRXK-eYbr-I75B-eT0A-2hwG-hKBg-Mxptdy
  LV Write Access        read/write
  LV Creation host, time vmsvr-6u8, 2019-04-16 19:25:59 +0900
  LV Status              available
  # open                 1
  LV Size                1.94 GiB
  Current LE             496
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
[root@vmsvr-6u8 ~]# vgdisplay 
  --- Volume group ---
  VG Name               Volgroup01
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               8.00 GiB
  PE Size               4.00 MiB
  Total PE              2047
  Alloc PE / Size       2047 / 8.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               nq9XJ3-06EY-pq5r-6zCj-sx66-exRB-CwnB0Z
   
  --- Volume group ---
  VG Name               vg_vmsvr6u8
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               19.51 GiB
  PE Size               4.00 MiB
  Total PE              4994
  Alloc PE / Size       4994 / 19.51 GiB
  Free  PE / Size       0 / 0   
  VG UUID               AEEtoW-v37n-2nMi-mmwD-BI1a-VIyN-2ZZs2t
cs


lvcreate -l [size] -n [논리볼륨명] [볼륨명]

lvcreate 명령어를 사용하여 -l (PE 개수) -L (용량) 옵션으로 디스크를 용량을 지정 할 수 있다

vgdisplay 명령어로 Free Pe 가 0으로 용량 모두 할당 된것을 확인 할 수 있다



8. 파일시스템 포맷 및 마운트


[root@vmsvr-6u8 ~]# mkfs.ext4 /dev/Volgroup01/data
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
524288 inodes, 2096128 blocks
104806 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 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
 
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
 
[root@vmsvr-6u8 ~]# mount /dev/Volgroup01/data /data
 
[root@vmsvr-6u8 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_vmsvr6u8-lv_root
                       18G  3.0G   14G  19% /
tmpfs                 491M     0  491M   0% /dev/shm
/dev/sda1             477M   35M  418M   8% /boot
/dev/mapper/Volgroup01-data
                      7.8G   18M  7.4G   1% /data
cs


mkfs.ext4 [LV PATH] (아직까지 난 EXT4가 가장 맘에 든다)

mount [LV PATH] [지정디렉토리]

ext4로 포맷후 마운트할 디렉토리에 마운트 하면 끝!



9 자동마운트를 위해 fstab에 추가


[root@vmsvr-6u8 ~]# vi /etc/fstab 
 
#
# /etc/fstab
# Created by anaconda on Tue Apr 16 19:26:28 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_vmsvr6u8-lv_root /                       ext4    defaults        1 1
UUID=0f7adb3a-6bcb-4512-b812-e32c5e8140ed /boot         ext4    defaults        1 2
/dev/mapper/vg_vmsvr6u8-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                 tmpfs   defaults        0 0
devpts                  /dev/pts                 devpts  gid=5,mode=620  0 0
sysfs                   /sys                     sysfs   defaults        0 0
proc                    /proc                    proc    defaults        0 0
/dev/mapper/Volgroup01-data       /data          ext4    defaults        1 2
cs


서버가 부팅이 되어도 자동으로 마운트 되기 위해 /etc/fstab 에 추가한다

/dev/mapper/Volgroup01-data     /data           ext4    defaults        1 2



일단 여기까지 나중에 명령어 별로 옵션 및 논리볼륨 증설 및 제거 하는걸 추가!!

Posted by 샤키