linux:lvm

LVM(Logical Volume Manager) - 論理ボリューム管理

  1. デバイスを引数に指定して GNU Parted を起動する。
    # parted /dev/sdb
    GNU Parted 1.8.8
    /dev/sdb を使用
    GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
  2. 2TB を超えるパーティションを作成するには、GPT(GUID Partition Table) ディスクラベルを作成する。
    msdos(MBR形式のパーティションテーブル) ディスクラベルでは 2TB が管理の限界なので注意。
    (parted) mklabel
    警告: いま存在している /dev/sdb のディスクラベルは破壊され、
    このディスクの全データが失われます。続行しますか?
    はい(Y)/Yes/いいえ(N)/No? y
    新しいディスクラベル?  [msdos]? gpt
    (parted) print
    モデル: HPT DISK_0_1 (scsi)
    ディスク /dev/sdb: 2872GB
    セクタサイズ (論理/物理): 512B/512B
    パーティションテーブル: gpt
    
    番号  開始  終了  サイズ  ファイルシステム  名前  フラグ
    
  3. ディスクの最大容量でパーティションを作成する。
    (parted) mkpart
    パーティションの名前?  []?
    ファイルシステムの種類?  [ext2]?
    開始? 0
    終了? 2872G
    (parted) print                                                            
    モデル: HPT DISK_0_1 (scsi)
    ディスク /dev/sdb: 2872GB
    セクタサイズ (論理/物理): 512B/512B
    パーティションテーブル: gpt
    
    番号  開始    終了    サイズ  ファイルシステム  名前  フラグ 
     1    17.4kB  2872GB  2872GB                          msftres
    
    (parted) quit
    通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

 LVM では、PV(Physical Volume - 物理ボリューム)を作成し、PV を1つ以上使って VG(Volume Group - ボリュームグループ)を作成する。
 そして、VG(ボリュームグループ) の中に LV(Logical Volume - 論理ボリューム) をマッピングして作成する。
 LV(論理ボリューム) には、ext4 などのファイルシステムを作成して利用する。

 LV(論理ボリューム) は、利用中であっても VG(ボリュームグループ) の空き領域を割り当てて拡張することができる。
 VG(ボリュームグループ) の空き容量がなくなってきた場合は、新しい PV(物理ボリューム) を VG(ボリュームグループ) に追加することで、簡単に容量を増やすことがきる。

  1. pvcreate コマンドを使用して PV(物理ボリューム) を初期化する。
    # pvcreate /dev/sdb1
      Physical volume "/dev/sdb1" successfully created
  2. pvdisplay コマンドにて作成状況を確認する。
    # pvdisplay
      --- Physical volume ---
      PV Name               /dev/sda2
      VG Name               vg_monster
      PV Size               119.01 GB / not usable 4.16 MB
      Allocatable           yes (but full)
      PE Size (KByte)       4096
      Total PE              30465
      Free PE               0
      Allocated PE          30465
      PV UUID               sVhxN7-Bf8u-35yp-BmZ6-CjSd-9fOn-TNAvCv
       
      "/dev/sdb1" is a new physical volume of "2.61 TB"
      --- NEW Physical volume ---
      PV Name               /dev/sdb1
      VG Name               
      PV Size               2.61 TB
      Allocatable           NO
      PE Size (KByte)       0
      Total PE              0
      Free PE               0
      Allocated PE          0
      PV UUID               OdPiUV-biUo-gha3-cAOA-QiB1-aFyc-waev4A
# vgcreate vg_monster1 /dev/sdb1
  Volume group "vg_monster1" successfully created
# vgdisplay
  --- Volume group ---
  VG Name               vg_monster1
  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               2.61 TB
  PE Size               4.00 MB
  Total PE              684826
  Alloc PE / Size       0 / 0   
  Free  PE / Size       684826 / 2.61 TB
  VG UUID               4YGE0j-AbaM-BKmx-9OVj-fnG8-C5jV-opCUCZ

VG(ボリュームグループ) に PV(物理ボリューム) を追加する。

# vgextend vg_monster /dev/sdb1
  Volume group "vg_monster" successfully extended
# vgdisplay
  --- Volume group ---
  VG Name               vg_monster
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  14
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               2.73 TB
  PE Size               4.00 MB
  Total PE              715291
  Alloc PE / Size       30465 / 119.00 GB
  Free  PE / Size       684826 / 2.61 TB
  VG UUID               y9vUDl-a5tm-1919-zViH-aaMU-hmNJ-38pcfy
# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vg_monster/lv_root
  VG Name                vg_monster
  LV UUID                oclD9d-LSdM-tWs8-gYmh-O34O-1RJK-L3YunN
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                115.00 GB
  Current LE             29441
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Name                /dev/vg_monster/lv_swap
  VG Name                vg_monster
  LV UUID                p3eWnk-8ifO-c8tW-uJ7Q-lO4I-0Gk7-2d1APF
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                4.00 GB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
# lvextend -L +100G /dev/vg_monster/lv_root
  Extending logical volume lv_root to 215.00 GB
  Logical volume lv_root successfully resized

LV(論理ボリューム)に合わせてファイルシステムをリサイズする。

# resize2fs /dev/vg_monster/lv_root
resize2fs 1.41.4 (27-Jan-2009)
Filesystem at /dev/vg_monster/lv_root is mounted on /; on-line resizing required
old desc_blocks = 8, new_desc_blocks = 175
Performing an on-line resize of /dev/vg_monster/lv_root to 731409408 (4k) blocks.
The filesystem on /dev/vg_monster/lv_root is now 731409408 blocks long.

リサイズ中の root デバイス
リサイズ中のrootデバイス1
リサイズ後の root デバイス
リサイズ後のrootデバイス2

# umount /home
# fsck -f /dev/mapper/vg_monster-lv_home
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg_monster-lv_home: 704340/241876992 files (0.3% non-contiguous), 255445351/967505920 blocks
# resize2fs /dev/mapper/vg_monster-lv_home 3710018M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/vg_monster-lv_home to 949764608 (4k) blocks.
The filesystem on /dev/mapper/vg_monster-lv_home is now 949764608 blocks long.
# lvreduce -L3710018M /dev/mapper/vg_monster-lv_home
  Rounding up size to full physical extent 3.54 TiB
  WARNING: Reducing active logical volume to 3.54 TiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_home? [y/n]: y
  Reducing logical volume lv_home to 3.54 TiB
  Logical volume lv_home successfully resized
$ sudo lvscan
  inactive          '/dev/vg_hoge/lv_swap' [4.00 GiB] inherit
  inactive          '/dev/vg_hoge/lv_root' [144.53 GiB] inherit
  ACTIVE            '/dev/vg_thecircle-fc/lv_swap' [3.94 GiB] inherit
  ACTIVE            '/dev/vg_thecircle-fc/lv_home' [201.56 GiB] inherit
  ACTIVE            '/dev/vg_thecircle-fc/lv_root' [50.00 GiB] inherit
$ sudo vgchange -ay vg_hoge
  2 logical volume(s) in volume group "vg_hoge" now active
$ sudo vgchange -an vg_hoge
  0 logical volume(s) in volume group "vg_hoge" now active
$ sudo lvscan
  inactive          '/dev/vg_hoge/lv_swap' [2.00 GiB] inherit
  inactive          '/dev/vg_hoge/lv_root' [124.00 GiB] inherit
  ACTIVE            '/dev/vg_thecircle-fc/lv_swap' [3.94 GiB] inherit
  ACTIVE            '/dev/vg_thecircle-fc/lv_home' [201.56 GiB] inherit
  ACTIVE            '/dev/vg_thecircle-fc/lv_root' [50.00 GiB] inherit
  • linux/lvm.txt
  • 最終更新: 2019/05/18 02:23
  • by 非ログインユーザー