Linux-admin-volume-management
Linux Admin-ボリューム管理
- 論理ボリューム管理(LVM)*は、さまざまな物理ハードディスク間でストレージボリュームを管理するためにLinuxで使用される方法です。 これはRAIDと混同しないでください。 ただし、RAID 0またはJ-Bodと同様の概念で考えることができます。 LVMを使用すると、(たとえば)それぞれ1TBの3つの物理ディスクを使用し、次に/dev/sdbなどの約3TBの論理ボリュームを使用できます。 または、1.5TBの2つの論理ボリューム、500GBの5つのボリューム、または任意の組み合わせです。 論理ボリュームのスナップショットに1つのディスクを使用することもできます。
注意-論理ボリュームを使用すると、正しく構成されている場合、実際にディスクI/Oが増加します。 これは、RAID 0が別々のディスクにデータをストライピングするのと同じように機能します。
LVMを使用したボリューム管理について学習するとき、LVMの各コンポーネントが何であるかを知っていれば簡単です。 次の表を調べて、各コンポーネントをしっかりと把握してください。 必要な場合は、Googleを使用して勉強してください。 論理ボリュームの各部分を理解することは、それらを管理するために重要です。
| PV | Physical Volume | sda |
| PP | Physical Partition | sda1 , sda2 |
| VG | Volume Group | Pooled physical resources |
| LV | Logical Volume | Seen as a storage facility to the operating system |
- 物理ボリューム*は/dev/sda、/dev/sdbとして認識されます。 Linuxによって検出される物理ディスク。
- 物理パーティション*は、fdiskなどのディスクユーティリティによってパーティション分割されたディスクのセクションです。 ほとんどの一般的なLVMセットアップでは、物理パーティションは推奨されません。 例:ディスク/dev/sdaは、2つの物理パーティション_/dev/sda1_および_/dev/sda1_を含むようにパーティション分割されています
それぞれ1TBの物理ディスクが2つある場合、2つの中にほぼ2TBの_ボリュームグループ_を作成できます。
ボリュームグループから、3つの_論理ボリューム_を作成できます。それぞれは、ボリュームグループの合計サイズを超えない任意のサイズです。
従来のLinuxディスク管理ツール
CentOS 7のLVM管理用の最新かつ最高の機能を備えたツールに慣れる前に、まずLinuxディスク管理に使用されてきた従来のツールを詳しく調べる必要があります。 これらのツールは便利であり、System Storage Manager(lsblk、parted、mkfs.xfs)などの今日の高度なLVMツールで引き続き使用できます。
ここで、システムに1つまたは2つのディスクを追加したと仮定すると、Linuxによって検出されたディスクを列挙する必要があります。 破壊的と見なされる操作を実行する前に、常にディスクを列挙することをお勧めします。 lsblk はディスク情報を取得するための素晴らしいツールです。 CentOSが検出するディスクを見てみましょう。
[root@localhost rdc]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part/boot
└─sda2 8:2 0 19G 0 part
├─cl-root 253:0 0 17G 0 lvm /
└─cl-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 6G 0 disk
sdc 8:32 0 4G 0 disk
sr0 11:0 1 1024M 0 rom
ご覧のとおり、このシステムにはsda、sdb、sdcの3つのディスクがあります。
Disk sdaには動作中のCentOSインストールが含まれているため、sdaをいじりたくありません。 このチュートリアルでは、_sdb_と_sdc_の両方がシステムに追加されました。 これらのディスクをCentOSで使用できるようにしましょう。
ディスクラベルを作成する
[root@localhost rdc]# parted/dev/sdb mklabel GPT
Warning: The existing disk label on/dev/sdb will be destroyed and all data on this
disk will be lost. Do you want to continue?
Yes/No? Yes
[root@localhost rdc]#
これで、1つのディスクにラベルが付けられました。 _sdc_で同じ方法で_parted_コマンドを実行するだけです。
ディスクにパーティションを作成する
各ディスクに単一のパーティションのみを作成します。 パーティションを作成するには、_parted_コマンドを再度使用します。
[root@localhost rdc]# parted -a opt/dev/sdb mkpart primary ext4 0% 100%
警告-0.00Bから6442MB(セクター0..12582911)のパーティションを要求しました。
私たちが管理できる最も近い場所は17.4kB〜1048kB(セクター34..2047)です。
これはまだ受け入れられますか?
はい・いいえ? NO
[root@localhost rdc]# parted -a opt/dev/sdc mkpart primary ext4 0% 100%
情報-/etc/fstabの更新が必要な場合があります。
[root@localhost rdc]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part/boot
└─sda2 8:2 0 19G 0 part
├─cl-root 253:0 0 17G 0 lvm /
└─cl-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 6G 0 disk
└─sdb1 8:17 0 6G 0 part
sdc 8:32 0 4G 0 disk
└─sdc1 8:33 0 4G 0 part
sr0 11:0 1 1024M 0 rom
[root@localhost rdc]#
lsblkの出力からわかるように、2つのパーティションがあり、それぞれがsdbとsdcにあります。
ファイルシステムを作成する
最後に、ボリュームをマウントして使用する前に、ファイルシステムを追加する必要があります。 XFSファイルシステムを使用します。
root@localhost rdc]# mkfs.xfs -f/dev/sdb1
meta-data =/dev/sdb1 isize = 512 agcount = 4, agsize = 393088 blks
= sectsz = 512 attr = 2, projid32bit = 1
= crc = 1 finobt = 0, sparse = 0
data = bsize = 4096 blocks = 1572352, imaxpct = 25
= sunit = 0 swidth = 0 blks
naming = version 2 bsize = 4096 ascii-ci = 0 ftype = 1
log = internal log bsize = 4096 blocks = 2560, version = 2
= sectsz = 512 sunit = 0 blks, lazy-count = 1
realtime = none extsz = 4096 blocks = 0, rtextents = 0
[root@localhost rdc]# mkfs.xfs -f/dev/sdc1
meta-data =/dev/sdc1 isize = 512 agcount = 4, agsize = 262016 blks
= sectsz = 512 attr = 2, projid32bit = 1
= crc = 1 finobt = 0, sparse = 0
data = bsize = 4096 blocks = 1048064, imaxpct = 25
= sunit = 0 swidth = 0 blks
naming = version 2 bsize = 4096 ascii-ci = 0 ftype = 1
log = internal log bsize = 4096 blocks = 2560, version = 2
= sectsz = 512 sunit = 0 blks, lazy-count = 1
realtime = none extsz = 4096 blocks = 0, rtextents = 0
[root@localhost rdc]#
それぞれに使用可能なファイルシステムがあることを確認してみましょう。
[root@localhost rdc]# lsblk -o NAME,FSTYPE
NAME FSTYPE
sda
├─sda1 xfs
└─sda2 LVM2_member
├─cl-root xfs
└─cl-swap swap
sdb
└─sdb1 xfs
sdc
└─sdc1 xfs
sr0
[root@localhost rdc]#
現在、それぞれがXFSファイルシステムを使用しています。 それらをマウントし、マウントを確認して、それぞれにファイルをコピーしましょう。
[root@localhost rdc]# mount -o defaults/dev/sdb1/mnt/sdb
[root@localhost rdc]# mount -o defaults/dev/sdc1/mnt/sdc
[root@localhost ~]# touch/mnt/sdb/myFile/mnt/sdc/myFile
[root@localhost ~]# ls/mnt/sdb/mnt/sdc
/mnt/sdb:
myFile
/mnt/sdc:
myFile
この時点で2つの使用可能なディスクがあります。 ただし、手動でマウントした場合にのみ使用できます。 ブート時にそれぞれをマウントするには、_fstab_ファイルを編集する必要があります。 また、新しいディスクへのアクセスを必要とするグループにアクセス許可を設定する必要があります。
ボリュームグループと論理ボリュームを作成する
CentOS 7に追加された最大の機能の1つは、_System Storage Manager_または_ssm_というユーティリティが追加されたことです。 System Storage Manager は、Linux上のLVMプールとストレージボリュームの管理プロセスを大幅に簡素化します。
CentOSでシンプルボリュームプールと論理ボリュームを作成するプロセスを実行します。 最初のステップは、System Storage Managerのインストールです。
[root@localhost rdc]# yum install system-storage-manager
_ssm list_コマンドを使用してディスクを見てみましょう。
上記のように、合計3つのディスクがシステムにインストールされています。
- /sdba1 -CentOSインストールをホストします
- /sdb1 -/mnt/sdbにマウント
- /sdc1 -/mnt/sdcにマウント
2つのディスク(sdbとsdc)を使用して_Volume Group_を作成します。 次に、3つの3GB論理ボリュームをシステムで使用できるようにします。
ボリュームグループを作成しましょう。
[root@localhost rdc]# ssm create -p NEW_POOL/dev/sdb1/dev/sdc1
デフォルトでは、_ssm_はプールの10GB全体を拡張する単一の論理ボリュームを作成します。 これは必要ないので、これを削除しましょう。
[root@localhost rdc]# ssm remove/dev/NEW_POOL/lvol001
Do you really want to remove active logical volume NEW_POOL/lvol001? [y/n]: y
Logical volume "lvol001" successfully removed
[root@localhost rdc]#
最後に、3つの論理ボリュームを作成しましょう。
[root@localhost rdc]# ssm create -n disk001 --fs xfs -s 3GB -p NEW_POOL
[root@localhost rdc]# ssm create -n disk002 --fs xfs -s 3GB -p NEW_POOL
[root@localhost rdc]# ssm create -n disk003 --fs xfs -s 3GB -p NEW_POOL
それでは、新しいボリュームを確認しましょう。
これで、2つの物理ディスクパーティションにまたがる3つの個別の論理ボリュームができました。
論理ボリュームは、CentOS Linuxに組み込まれた強力な機能です。 これらの管理の表面に触れました。 マスタリングプールと論理ボリュームには、Tutorials Pointの練習と拡張学習が付属しています。 ここまでは、CentOSでのLVM管理の基本を学び、単一のホストで基本的なストライプ化論理ボリュームを作成する機能を備えています。