리눅스(linux) LVM 디스크 관리 및 추가
Linux
     여기서 사용한 명령어 모
[root@dbserver ~]# fdisk /dev/sdc                 /처음 파티션을 나눠주기 위한 명령어(fdisk /dev/디스크)
[root@dbserver ~]# fdisk -l                       /디스크 파티션 정보
[root@dbserver ~]# pvcreate /dev/sdc1             /논리적에서 물리적 볼륨으로 변환 명령어
[root@dbserver ~]# vgcreate lvm /dev/sdc1 \       /lvm이란 볼륨그룹에 3개의 물리적 볼륨을 합치는 명령어
>                               /dev/sdd1 \
>                               /dev/sde1
[root@dbserver ~]# vgdisplay                      /생성된 논리적 볼륨을 보여주는 명령어
[root@dbserver ~]# lvcreate -L 1500MB -n lv1 lvm  /lvm볼륨그룹에서 파티셔닝 할 수 있는 명령어
[root@dbserver ~]# lvscan                         /생성된 논리적 볼륨 그룹을 조회 하는 명령어
[root@dbserver ~]# mkfs.ext3 /dev/lvm/lv1         /mkfs포멧
[root@dbserver ~]# df -h                          /하드 조회
[root@dbserver ~]#vi /etc/fstab                   /fstab에 디스크 파티셔닝 정보를 입력해야함


        LVM이란 Local Volume Manager의 약자로 물리적으로 여러 개의 디스크를 논리적으로 하나의 디스크로 합쳐주고
      다시 논리적으로 나누어서 관리하게 해 주는 방법을 말한다. 아래에는 1gb의 용량의 디스크 3개를 LVM을 사용해서
      3GM의 용량의 디스크 1개로 만들어 주고 이것을 각각 다시 1.5GB 씩 두개로 나누게 해주는 방법을 말한다.

[root@dbserver ~]# fdisk /dev/sdc

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xfc5b1df1.
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                                                 /new를 뜻함
Command action
   e   extended
   p   primary partition (1-4)
p                                                                       /primary로 나눔
Partition number (1-4): 1                                               /첫번째 파티션
First cylinder (1-130, default 1):                                      /엔터치면 실린더넘버는 알아서 입력된다.
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130):         /나누지 않을것이기에 엔터
Using default value 130

Command (m for help): t                                                 /t 입력
Selected partition 1
Hex code (type L to list codes): 8e                                     /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.
[root@dbserver ~]#



        위 파티션에서 t,8e 가 추가 되었는데 이 부분이 파티션을 생성할 때 linux LVM 용으로 파티션을 생성하는 단계이다.
      지문이 길어지므로 나머지 sdd, sde 이 두개의 디스크도 동일하게 위와 같이 lvm 파티션으로 생성하면 된다. 알아서 해라.

      파티션 작업이 모두 끝났다면 이제 조회를 해보자.

[root@dbserver ~]# fdisk -l                                                    /생성한 파티션 조회

Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 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: 0x16dcfdbd

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         130     1044193+  8e  Linux LVM              /정삭적으로 LVM으로 만들어졌다

Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 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: 0xfc5b1df1

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         130     1044193+  8e  Linux LVM              /정삭적으로 LVM으로 만들어졌다

Disk /dev/sde: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 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: 0xb628b079

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1         130     1044193+  8e  Linux LVM              /정삭적으로 LVM으로 만들어졌다

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 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: 0x0004badc

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        2576    20480000   83  Linux
/dev/sda3            2576        3851    10240000   83  Linux
/dev/sda4            3851        6528    21502976    5  Extended
/dev/sda5            3851        4616     6144000   83  Linux
/dev/sda6            4616        5126     4096000   82  Linux swap / Solaris
/dev/sda7            5126        6528    11259904   83  Linux

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 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: 0x110bf577

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          65      522081   83  Linux
/dev/sdb2              66         130      522112+  83  Linux
[root@dbserver ~]#
        각 파티션이 나눠진 디스크를 보면 id=8e , system=Linux LVM이라고 쓰여져 있다.
      아~주 잘 LVM용 파티션으로 나누어 졌다. 다음으로 넘어가자.

      이젠 아까 만들었던 LVM용 디스크3개를 각각 물리적 볼륨(논리적에서)으로 변환하겠다. 오타는 용서치 않음
[root@dbserver ~]# pvcreate /dev/sdc1                       / 논리적 볼륨에서 물리적 볼륨으로 변환
  dev_is_mpath: failed to get device for 8:33
  Physical volume "/dev/sdc1" successfully created
[root@dbserver ~]# pvcreate /dev/sdd1                       / 논리적 볼륨에서 물리적 볼륨으로 변환
  dev_is_mpath: failed to get device for 8:49
  Physical volume "/dev/sdd1" successfully created
[root@dbserver ~]# pvcreate /dev/sde1                       / 논리적 볼륨에서 물리적 볼륨으로 변환
  dev_is_mpath: failed to get device for 8:65
  Physical volume "/dev/sde1" successfully created
[root@dbserver ~]#

      변환이 완료 되었다. 그럼 이제 물리적으로 변환했으면 이 볼륨 3개를 1개의 볼륨그룹으로 합쳐야한다.(RAID의 개념을 알고 있어야 한다)
[root@dbserver ~]# vgcreate lvm /dev/sdc1 \
>                               /dev/sdd1 \                 / 물리적 볼륨 3개를 lvm(이름 맘대로 정해도 됨)이라는 1개의 볼륨그룹으로 합침
>                               /dev/sde1
  Volume group "lvm" successfully created
[root@dbserver ~]#


      3개의 볼륨을 하나의 볼륨그룹으로 합쳤고, vgdisplay 명령어를 쳐서 확인해보자.
[root@dbserver ~]# vgdisplay
  --- Volume group ---
  VG Name               lvm
  System ID
  Format                lvm2
  Metadata Areas        3
  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                3
  Act PV                3
  VG Size               2.98 GiB
  PE Size               4.00 MiB
  Total PE              762
  Alloc PE / Size       0 / 0
  Free  PE / Size       762 / 2.98 GiB
  VG UUID               pZQSHo-BZMU-4rhM-7qxX-N1aU-aD6I-CO6UrR

[root@dbserver ~]#

        vg size에 3gb가 있다. 하나의 볼륨그룹으로 제대로 합쳐진 상태고 이제 1.5gb씩 파티셔닝 할 차례이다.
      물리적인 디스크는 fdisk로 파티션을 분할 하지만, 논리적인 LVM디스크는 lvcreate 명령어로 분할한다.(logical volume)


[root@dbserver ~]# lvcreate -L 1500MB -n lv1 lvm
  Logical volume "lv1" created                                   /1개의 lvm디스크에서 파티셔닝함(여러개 가능)
[root@dbserver ~]# lvcreate -L 1500MB -n lv2 lvm
  Logical volume "lv2" created
[root@dbserver ~]#

       위와 같이 논리적 볼륨 lv1(다르게 네임 지어줘도 됨)이 볼륨그룹 lvm안에 만들어졌다.
      vgdisplay명령어로 남아 있는 공간을 확인 한 후에 나머지 논리적 볼륨 lv2를 알아서 만들자.

      다 만들었으면 lvscan 명령어로 확인해보자.

[root@dbserver ~]# lvscan
  ACTIVE            '/dev/lvm/lv1' [1.46 GiB] inherit
  ACTIVE            '/dev/lvm/lv2' [1.46 GiB] inherit
[root@dbserver ~]#

       히야. 겁나게 잘 만들어졌다.
      항상 파티셔닝이 끝나면 포멧을 해줘야 한다. 리눅스에서는 포멧할때 mkfs를 사용한다.

      이제 포멧해보자.

[root@dbserver ~]# mkfs.ext3 /dev/lvm/lv1                       /포멧하자...하...
mke2fs 1.43-WIP (20-Jun-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
96000 inodes, 384000 blocks
19200 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=394264576
12 block groups
32768 blocks per group, 32768 fragments per group
8000 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

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

       나머지 하나의 볼륨(lv2)도 알아서 말 안해도 포멧해라.
      그리고 마지막 과정인 디렉토리를 생성하고 마운트하면 끝난다.
      그리고 꼭 fstab에 정보를 입력해 두자.

[root@dbserver ~]# ls /
app   cgroup  dir2  lib         media  net   root     srv  usr
bin   dev     etc   lib64       misc   opt   sbin     sys  var
boot  dir1    home  lost+found  mnt    proc  selinux  tmp
[root@dbserver ~]# mkdir /dir3                                 /dir3 디렉토리 생성
[root@dbserver ~]# mkdir /dir4                                 /dir4 디렉토리 생성
[root@dbserver ~]#
[root@dbserver ~]# mount /dev/lvm/lv1 /dir3                    /dir3 마운트
[root@dbserver ~]# mount /dev/lvm/lv1 /dir4                    /dir4 마운트
[root@dbserver ~]#
[root@dbserver ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/sda3            9.5G  5.3G  3.8G  58% /
tmpfs                998M   76K  998M   1% /dev/shm
/dev/sda2             20G   13G  5.5G  70% /app
/dev/sda1            190M  159M   17M  91% /boot
/dev/sda7             11G  2.5G  7.5G  25% /home
/dev/sda5            5.7G  2.3G  3.1G  43% /var
/dev/mapper/lvm-lv1  1.5G   35M  1.4G   3% /dir3
/dev/mapper/lvm-lv1  1.5G   35M  1.4G   3% /dir4
[root@dbserver ~]#
[root@dbserver ~]#vi /etc/fstab                                 /lvm디스크 정보저장
# /etc/fstab
# Created by anaconda on Mon Jul 14 07:23:11 2014
#
# 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
#
UUID=147fcbc4-fddc-419e-8ece-111d5acc56d7 /                       ext4    defaults        1 1
UUID=7da49108-d211-4727-9152-edb7dea56f6b /app                    ext4    defaults        1 2
UUID=3d938562-8552-4064-bc4e-cf75b117aaea /boot                   ext4    defaults        1 2
UUID=f518c3a4-c3b2-4a06-8347-7184cd4f4e6c /home                   ext4    defaults        1 2
UUID=682a4749-3154-4915-81bb-5926fe21b909 /var                    ext4    defaults        1 2
UUID=4abfebb2-f61b-4878-98c4-e951aa6a9034 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/lvm-lv1                       /dir3                   ext3    defaults        1 2
/dev/mapper/lvm-lv2                       /dir4                   ext3    defaults        1 2


'Linux' 카테고리의 다른 글

set sqlprompt 사용법  (0) 2014.10.31
리눅스 디스크 관리 및 추가  (0) 2014.10.31
리눅스 shell script  (0) 2014.10.31
lunux(리눅스) 압축 파일 관리 (compress.tar, gzip 등)  (0) 2014.10.31
리눅스에 iptraf3.0 설치  (1) 2014.10.31