ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 디스크 추가하여 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 busy

    The 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

    댓글

Designed by Tistory.