#author("2020-07-23T23:13:21+00:00","default:sysosa","sysosa")
#author("2020-07-23T23:15:57+00:00","default:sysosa","sysosa")
複数のストレージ領域を統合して大きなボリュームにできる.

RAID5/RAID6で作った領域をLVMで繋げるか、RAID50/RAID60とかで作るか悩みどころではある.

RAID50/RAI60なら個別のRAID5/RAID6のサイズは同じである必要があるけど、LVMの場合は異なるサイズのRAID5/RAID6でも構わない点がいいのかな.

初回は 12slotsのRAID6(4TB*[12-2]:40TB)を2つ作り、容量が切迫したら 12slotsRAID6(6TB*[12-2]:60TB)を追加して、
初回の1つの領域を6TBで作った領域にpvmoveして破棄する. これでトータル 100TB.

その後、また切迫したら空いた初回の領域に12slotsRAID6(8TB*[12-2]:80TB)を追加して、最古の領域をpvmoveしてまた破棄します.
これで 60TB + 80TB --> 140TB

次に、空いた領域に12slots(10TB*[12-2]:100TB)を追加して、6TBの部分をpvmoveさせてこの部分を破棄します
これで 80TB + 100TB --> 180TB

、、っといった具合で同一ボリュームを拡張できる. しかも古い領域を破棄しながら.

&ref(2020y07m24d_075715492.png,nolink,noborder);

ここでは CentOS8 を使ってLVMのボリュームの拡張とその要素の削除を示す.

&color(red){*};&size(10){古いHDDをそのまま継続して使いたいなら別途エンクロージャが必要};


&size(10){[[LVM200704]]};
***方針 [#m63daa85]
ESXiで試すのでストレージのサイズは1000分の1で行います。
ESXiで試します.
手始めに8GBの領域を設置して、次に11GB、さらに18GBを追加して、初めの8GBの領域を除いてみます。


***準備 [#qe5b967b]
まずLVMパッケージをインストールします.
#code(nonumber){{
[root@lvm ~]# yum install lvm2
}}


***ストレージの下拵え [#beca7cf8]
まず8GBの領域を追加してみる.

#code(nonumber){{
[root@lvm ~]# parted /dev/sdb
(parted) mklabel gpt                                                         *gptでラベル(参照:help mklabel)
(parted) unit s                                                              *単位をセクターに変更
(parted) mkpart primary 2048s -1s                                            *区分作成(参照:help mkpart)
(parted) set 1 lvm on                                                        *区分1をlvmとして扱う
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sdb: 16777216s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start  End        Size       File system  Name     Flags
 1      2048s  16777182s  16775135s               primary  lvm

(parted) quit

[root@lvm ~]#
}}


***LVM作成 [#qaaf5e9c]
用意した8GBの領域をLVMにして、/dataに乗せてみる.
まず&color(green){''pvcreate''};コマンドでPhysicalVolume(物理ボリューム)としてLVM側に認知させます。
#code(nonumber){{
[root@lvm ~]# pvscan
  No matching physical volumes found

[root@lvm ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.

[root@lvm ~]# pvscan
  PV /dev/sdb1                      lvm2 [<8.00 GiB]
  Total: 1 [<8.00 GiB] / in use: 0 [0   ] / in no VG: 1 [<8.00 GiB]

[root@lvm ~]#
}}

次にボリュームグループ(VolumeGroup)作成を作ります.
&color(green){''vgcreate''};コマンドで
#code(nonumber){{
[root@lvm ~]# vgcreate VG00 /dev/sdb1
  Volume group "VG00" successfully created

[root@lvm ~]# vgscan
  Found volume group "VG00" using metadata type lvm2

[root@lvm ~]#
}}

作ったボリュームグループから論理ボリューム作成(Logicl Volume)を作る. &color(green){''lvcreate''};コマンドで
#code(nonumber){{
[root@lvm ~]# lvcreate -n L0 -l 100%FREE VG00              <-- VG00の全量でL0を作る
  Logical volume "L0" created.

[root@lvm ~]# lvscan
  ACTIVE            '/dev/VG00/L0' [<8.00 GiB] inherit

[root@lvm ~]#
}}

作った論理ボリューム作成(L0)をフォーマットして /data にmountする

#code(nonumber){{
[root@lvm ~]# mkfs.xfs /dev/VG00/L0

[root@lvm ~]# xfs_admin -L data /dev/VG00/L0            <-- ラベルを付けた
writing all SBs
new label = "data"

[root@lvm ~]# vi /etc/fstab
 :
LABEL=data /data xfs defaults 0 0

[root@lvm ~]# mkdir /data && mount -a
[root@lvm ~]# df -lTh /data
Filesystem          Type  Size  Used Avail Use% Mounted on
/dev/mapper/VG00-L0 xfs   8.0G   90M  7.9G   2% /data

[root@lvm ~]#
}}
再起動しても/dataが正しくmountされているかを確認します。
のちの削除テストのために/dataにはこの段階で大き目なファイルを配置しました.
#code(nonumber){{
[root@lvm ~]# ls -lh /data/
total 4.8G
-rw-r--r--. 1 root root 4.8G Aug  9  2017 en_visual_studio_community_2013_with_update_5_x86_dvd_6816332.iso

[root@lvm ~]# df -lTh /data
Filesystem          Type  Size  Used Avail Use% Mounted on
/dev/mapper/VG00-L0 xfs   8.0G  4.9G  3.2G  61% /data

[root@lvm ~]#
}}

***LVMの領域拡大 [#h45ad9b0]
冒頭のように 11GB HDDを追加してみる. 追加した11GB HDDは /dev/sdc として認識されれている. それにパーティションを設けて/dev/sdc1とした.

pvcreateで/dev/sdc1をPhysicalVolumeとさせる.
#code(nonumber){{
[root@lvm ~]# pvscan
  PV /dev/sdb1   VG VG00            lvm2 [<8.00 GiB / 0    free]
  Total: 1 [<8.00 GiB] / in use: 1 [<8.00 GiB] / in no VG: 0 [0   ]

[root@lvm ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created.

[root@lvm ~]# pvscan
  PV /dev/sdb1   VG VG00            lvm2 [<8.00 GiB / 0    free]
  PV /dev/sdc1                      lvm2 [<11.00 GiB]
  Total: 2 [<19.00 GiB] / in use: 1 [<8.00 GiB] / in no VG: 1 [<11.00 GiB]

[root@lvm ~]#
}}

次に作った新しいPhysicalVolumeをボリュームグループ VG00 に加えてみる.
#code(nonumber){{
[root@lvm ~]# vgextend VG00 /dev/sdc1
  Volume group "VG00" successfully extended

[root@lvm ~]# pvscan
  PV /dev/sdb1   VG VG00            lvm2 [<8.00 GiB / 0    free]
  PV /dev/sdc1   VG VG00            lvm2 [<11.00 GiB / <11.00 GiB free]    <-- VG00に参加
  Total: 2 [18.99 GiB] / in use: 2 [18.99 GiB] / in no VG: 0 [0   ]

[root@lvm ~]#
}}
そしてVG00から作っている論理ボリューム(L0)を拡張する
#code(nonumber){{
[root@lvm ~]# lvextend -l +100%FREE /dev/VG00/L0
  Size of logical volume VG00/L0 changed from <8.00 GiB (2047 extents) to 18.99 GiB (4862 extents).
  Logical volume VG00/L0 successfully resized.

[root@lvm ~]# df -lTh /data
Filesystem          Type  Size  Used Avail Use% Mounted on
/dev/mapper/VG00-L0 xfs   8.0G  4.9G  3.2G  61% /data

[root@lvm ~]# xfs_growfs /data/                              <-- mount場所を指定する

[root@lvm ~]# df -lTh /data
Filesystem          Type  Size  Used Avail Use% Mounted on
/dev/mapper/VG00-L0 xfs    19G  5.0G   15G  26% /data
[root@lvm ~]#
}}

***さらに18GBを加えるが、そこに/dev/sdb1のPEを移して/dev/sdb1を開放する [#lafc4a1d]
手順は前段と同じ. 追加した18GB HDDは /dev/sdd と認識されている.

#code(nonumber){{
[root@lvm ~]# pvcreate /dev/sdd1
[root@lvm ~]# vgextend VG00 /dev/sdd1

[root@lvm ~]# df -lTh /data                                         <-- vgextendしても/dataサイズは変わらない.
Filesystem          Type  Size  Used Avail Use% Mounted on
/dev/mapper/VG00-L0 xfs    19G  5.0G   15G  26% /data

[root@lvm ~]# pvscan
  PV /dev/sdb1   VG VG00            lvm2 [<8.00 GiB / 0    free]
  PV /dev/sdc1   VG VG00            lvm2 [<11.00 GiB / 0    free]
  PV /dev/sdd1   VG VG00            lvm2 [<18.00 GiB / <18.00 GiB free]   <-- 同じVG00に配属されてもアサインされてない
  Total: 3 [<36.99 GiB] / in use: 3 [<36.99 GiB] / in no VG: 0 [0   ]

[root@lvm ~]# 
}}
ボリュームグループ VG00に/dev/sdd1を加えた状態で、取り外ししたい/dev/sdc1の物理ボリュームを他へ移動させる.
とにかく空いているところに移したいので「pvmove /dev/sdb1」とする. 特定の物理ボリュームに移したければ「pvmove <元> <先>」とする.

&color(red){*};&size(10){pvmoveの際はumountした方がいいみたい};

#code(nonumber){{
[root@lvm ~]# pvmove /dev/sdb1
  /dev/sdb1: Moved: 0.05%
 :
  /dev/sdb1: Moved: 100.00%

[root@lvm ~]# pvscan
  PV /dev/sdb1   VG VG00            lvm2 [<8.00 GiB / <8.00 GiB free]    <-- /dev/sdb1が全量freeになった
  PV /dev/sdc1   VG VG00            lvm2 [<11.00 GiB / 0    free]
  PV /dev/sdd1   VG VG00            lvm2 [<18.00 GiB / 10.00 GiB free]   <-- 8GiB分食われた.
  Total: 3 [<36.99 GiB] / in use: 3 [<36.99 GiB] / in no VG: 0 [0   ]

[root@lvm ~]# df -lTh /data
Filesystem          Type  Size  Used Avail Use% Mounted on
/dev/mapper/VG00-L0 xfs    19G  5.0G   15G  26% /data

[root@lvm ~]# pvscan
  PV /dev/sdb1   VG VG00            lvm2 [<8.00 GiB / <8.00 GiB free]
  PV /dev/sdc1   VG VG00            lvm2 [<11.00 GiB / 0    free]
  PV /dev/sdd1   VG VG00            lvm2 [<18.00 GiB / 10.00 GiB free]
  Total: 3 [<36.99 GiB] / in use: 3 [<36.99 GiB] / in no VG: 0 [0   ]

[root@lvm ~]# vgreduce VG00 /dev/sdb1                                   <-- VG00から/dev/sdb1 を外した.
  Removed "/dev/sdb1" from volume group "VG00"

[root@lvm ~]# pvscan
  PV /dev/sdc1   VG VG00            lvm2 [<11.00 GiB / 0    free]
  PV /dev/sdd1   VG VG00            lvm2 [<18.00 GiB / 10.00 GiB free]
  PV /dev/sdb1                      lvm2 [<8.00 GiB]
  Total: 3 [36.99 GiB] / in use: 2 [28.99 GiB] / in no VG: 1 [<8.00 GiB]

[root@lvm ~]# pvremove /dev/sdb1                                        <-- 物理ボリュームとしての任を外す
  Labels on physical volume "/dev/sdb1" successfully wiped.

[root@lvm ~]# pvscan
  PV /dev/sdc1   VG VG00            lvm2 [<11.00 GiB / 0    free]
  PV /dev/sdd1   VG VG00            lvm2 [<18.00 GiB / 10.00 GiB free]
  Total: 2 [28.99 GiB] / in use: 2 [28.99 GiB] / in no VG: 0 [0   ]
[root@lvm ~]#
}}
これで/dev/sdbは解放される
partedで付けたlvmフラグを削除する.

#code(nonumber){{
[root@lvm ~]# parted /dev/sdb
(parted) p
(略)

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  8590MB  8589MB               primary  lvm

(parted) set 1 lvm off
(parted) p
(略)

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  8590MB  8589MB               primary

(parted) q
[root@lvm ~]#
}}

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS