-
디스크 추가하여 LVM 구성 (1)Linux 2020. 9. 5. 14:10
전체 순서
1. 디스크 추가
2. 파트션 생성 (fdisk /dev/sdb1)
3. PV생성 (pvcreate /dev/sdb1)
4. VG생성 (vgcreate MyVG /dev/sdb1)
5. LV생성 (lvcreate -l 100%FREE -n MyVL MyVG)
6. 포멧 (mkfs.ext4 /dev/MyVG/MyLV)
7. 마운트 (mount /dev/MyVG/MyLV /data)
8. 영구 마운트(/etc/fstab 수정)
1. 디스크 추가
2. 파티션 생성
LVM구성을 위해서 가장 먼저 파티션을 생성해야 합니다.
명령어 : fdisk -l, fdisk /dev/sd*,
fdisk -l로 현재 디스크를 확인 합니다.
[root@centos7-02 ~]# fdisk -l WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk label type: gpt Disk identifier: A8DB31D1-4642-48F7-8440-A08FC3B69177 # Start End Size Type Name 1 2048 411647 200M EFI System EFI System Partition 2 411648 2508799 1G Microsoft basic 3 2508800 104855551 48.8G Linux LVM Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes
위의 내용에서 /dev/sdb 디스크는 방금 추가한 디스크이며, 해당 디스크를 이용해요 LVM구성을 하겠습니다.
fdisk /dev/sdb 명령어로 파티션 작업을 진행합니다.
[root@centos7-02 ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0x739547a2. The device presents a logical sector size that is smaller than the physical sector size. Aligning to a physical sector (or optimal I/O) size boundary is recommended, or performance may be impacted. Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk label type: dos Disk identifier: 0x739547a2 Device Boot Start End Blocks Id System
p를 눌려 보면 아직 파티션이 없음을 알수 있습니다.
이제 n을 눌려 파티션 생성을 해보겠습니다.
Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): Using default value 41943039 Partition 1 of type Linux and of size 20 GiB is set Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk label type: dos Disk identifier: 0x739547a2 Device Boot Start End Blocks Id System /dev/sdb1 2048 41943039 20970496 83 Linux
n -> p -> 1(파티션 번호, 파티션이 없으므로 1번을 누른다) -> 엔터 -> 엔터 를 눌러 1번 파티션을 만들었습니다. 이후 p를 눌려 보면 system: Linux라고 보이는데 이를 linux LVM으로 변경해야 합니다.
Command (m for help): t Selected partition 1 Hex code (type L to list all codes): list 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT 1e Hidden W95 FAT1 80 Old Minix
t를 누른후 list입려하여 보면 Linux LVM 파티션 타입이 8e 값을 나타내기에 8e 값을 입력하였습니다. 하지만 최신 버전의 fdisk에서는 Linux LVM 값이 31을 나타낼 수 있습니다. 따라서 지원되는 파티션 유형을 확인 후 정확한 값을 입력해 주시기 바랍니다.
Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk label type: dos Disk identifier: 0x739547a2 Device Boot Start End Blocks Id System /dev/sdb1 2048 41943039 20970496 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
p를 눌러 Linux LVM으로 변경됨을 확인하고 w눌러 저장합니다.
-------
<w 이후 오류 해결>
* 오류 메시지:
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busyThe kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
* 원인:
/dev/sdb 디스크가 사용중인 경우 위와 같은 메시지가 나타날 수 있습니다. (현재 사용중인 HDD에 특정 파티션을 추가 하거나 변형 했을 경우 해당 오류 발생됨)
*해결:
이 경우 partprobe 명령어를 실행하여 리부팅 없이 사용 중인 파티션을 재인식 시킬수 있습니다. (예: partprobe /dev/sdb)
-------
[root@centos7-02 ~]# fdisk -l WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion. Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk label type: gpt Disk identifier: A8DB31D1-4642-48F7-8440-A08FC3B69177 # Start End Size Type Name 1 2048 411647 200M EFI System EFI System Partition 2 411648 2508799 1G Microsoft basic 3 2508800 104855551 48.8G Linux LVM Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk label type: dos Disk identifier: 0x739547a2 Device Boot Start End Blocks Id System /dev/sdb1 2048 41943039 20970496 8e Linux LVM
마지막으로 fdsik -l로 새로 생성된 파티션을 확인합니다.
3.PV(물리 볼륨) 생성
pvcreate 로 물리 볼륨 생성합니다.
[root@centos7-02 ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created.
pvdisplay 로 물리볼륨 확인합니다.
[root@centos7-02 ~]# pvdisplay --- Physical volume --- PV Name /dev/sda3 VG Name centos PV Size 48.80 GiB / not usable 2.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 12493 Free PE 1 Allocated PE 12492 PV UUID no6yvn-y8XQ-Ocnt-Dc2j-FxeO-9Lte-F8lZFD "/dev/sdb1" is a new physical volume of "<20.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size <20.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID G5oaVd-sudE-D2V4-nkaw-Uy20-Q1WT-bbL7ve
4. VG(볼륨 그룹) 생성
여러개의 물리 볼륨을 이용하여 논리 그룹을 구성할 수 있습니다. 이번 실습에서는 방금 생성한 하나의 물리 볼륨을 이용하여 하나의 볼륨 그룹을 생성해 보겠습니다.
vgcreate 명령어 사용법:
vgcreate [VolumeGroupName] [PhysicalDevicePath] [PhysicalDevicePath...]
vgcreate 로 볼륨 그룹을 생성합니다.
[root@centos7-02 ~]# vgcreate MyVG /dev/sdb1 Volume group "MyVG" successfully created
vgcreate 로 볼륨 그룹을 확인합니다.
[root@centos7-02 ~]# vgdisplay --- Volume group --- VG Name MyVG 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 <20.00 GiB PE Size 4.00 MiB Total PE 5119 Alloc PE / Size 0 / 0 Free PE / Size 5119 / <20.00 GiB VG UUID rlLIH3-f6Nj-6AMb-DJiM-ZUI2-O7Uv-k2Fv8K
5. LV(논리 볼륨) 생성
lvcreate 로 논리 볼륨을 생성합니다.
lvcreate 명령어 사용법:
lvcreate -L LV용량 -n LV명 VG명 (ex: lvcreate -L 1T -n MyLV MyVG, lvcreate -l 100%FREE -n MyLV MyVG)
lvcreate로 논리 볼륨을 생성합니다.
[root@centos7-02 ~]# lvcreate -l 100%FREE -n MyLV MyVG Logical volume "MyVL" created.
lvdisplay로 논리 볼륨을 확인합니다.
[root@centos7-02 ~]# lvdisplay --- Logical volume --- LV Path /dev/MyVG/MyLV LV Name MyLV VG Name MyVG LV UUID VyBri1-Jqa5-o7Rl-cLg5-5l11-9fgl-HJFQ3h LV Write Access read/write LV Creation host, time centos7-02, 2020-09-05 14:51:42 +0900 LV Status available # open 0 LV Size <20.00 GiB Current LE 5119 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2
6. 포멧
생성된 볼륨은 아래의 명령어로 ext4타입으로 포맷할 수 있습니다.
[root@centos7-02 ~]# mkfs.ext4 /dev/MyVG/MyLV ... Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
7. 마운트
포맷한 볼륨을 마운트할 위치인 /data 디렉토리 생성 후 아래 명령어로 마우트 하여 사용합니다.
[root@centos7-02 ~]# mkdir /data [root@centos7-02 ~]# mount /dev/MyVG/MyLV /data [root@centos7-02 ~]# df -h | grep "MyVG" /dev/mapper/MyVG-MyLV 20G 45M 19G 1% /data
8. 영구 마운트
위 방법처럼 마운트하면 재부팅시 mount가 풀려버립니다. 항상 mount가 되어 있도록 하려면 /etc/fstab파일을 편집해야 합니다. 방법은 두가지 있습니다.
/dev/sdb1 /data ext4 defaults 0 0 이런 식으로 넣어줄 수도 있고, UUID=f30bcefe-e166-4526-ad1c-6a84e85dca69 /data ext4 defaults 0 0 넣어줄 수도 있다.
위 내용은 총 6개의 내용으로 구분되어 있는데, 그 내용은 아래와 같다.
(1) 파일시스템장치명 (file system device name)
(2) 마운트 포인트 (mount point)
(3) 파일시스템 종료 (file system type)
(4) 마운트 옵션 (mount option)
(5) Dump
(6) File sequence check option
하지만 UUID를 사용하는게 좋습니다. 왜냐하면 sda, sdb ... 이런 이름은 차후에 하드디스크를 추가하게 되었을 때, 변경될 수도 있기 때문입니다.
blkid 를 이용하여 UUID값을 확인합니다.
[root@centos7-02 ~]# blkid ~~~ /dev/mapper/MyVG-MyLV: UUID="7753e553-b17a-4535-8a8b-9460ddbb2384" TYPE="ext4"
이제 /etc/fstab을 편집합니다.
# # /etc/fstab # Created by anaconda on Sun Aug 2 21:13:29 2020 # # 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/centos-root / xfs defaults 0 0 UUID=3ce8b13e-8943-447f-a940-d3cb6ca7c0d5 /boot xfs defaults 0 0 UUID=DE88-5605 /boot/efi vfat umask=0077,shortname=winnt 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 UUID=7753e553-b17a-4535-8a8b-9460ddbb2384 /data ext4 defaults 0 0
'Linux' 카테고리의 다른 글
배포서버 구축 (1) (0) 2020.09.05 기존 디스크 확장하여 LVM 구성 (2) (0) 2020.09.05 SVN, HTTP, LDAP 모두 연동 (0) 2020.04.16 LDAP 설치 (0) 2020.04.16 SVN과 HTTP 연동 (0) 2020.04.16