Linuxでの仮想ディスクアレイ+スクリプトソリューションを作成するためにゼロからLVM

序文

ボリュームマネージャ(英語:LVMと略記論理ボリュームマネージャ)論理、また、論理ボリュームマネージャ、論理セクタマネージャ、論理ディスクマネージャとして翻訳、Linuxカーネルは、論理ボリュームマネージャ(論理ボリューム管理)によって提供される機能。これは、ハードディスクのパーティション上にあり、分割システムのハードディスクを容易にするための論理層管理システムを作成します。

もともと、IBMによって開発されたAIXシステム上に実装され、OS / 2およびHP-UXオペレーティングシステムは、この機能をサポートしています。1998年、ハインツMauelshagenは、HP-UX上の論理ボリュームマネージャに応じて、およびLinux論理ボリュームマネージャの最初のバージョンを書いて。

LVMの基本的な用語:

  • PV:物理ボリューム、ディスク全体またはディスク・パーティションと同じ機能(例えば、RAID)を有する装置であってもよいLVMにおけるPVシステムの最低レベルが、物理的記憶媒体と実質的に比較して、より管理パラメータLVMに関連付けられています
  • VG:ボリュームグループは、1つまたは複数によって構成されるPV、PV上に作成され、1つまたは複数の「LVMパーティション」(論理ボリューム)、VG上の非LVM物理ディスクのようなシステム機能を作成することができます
  • LV:論理ボリューム、VGから分割空間のサイズリトラクタブル作成した後、システムはLVに(例えば、は/ var、/ homeの)ファイルを作成することができます
  • PE:物理領域、各々がベースユニットPVに分割され(また、PEと呼ぶ)、PEは、デフォルトでは4メガバイトLVM最小アドレス指定可能単位に記憶することができる固有の番号であるました

私たちは、柔軟かつ便利なLVMディスク管理システムで、高速のニーズに応じて、ターゲットディスクの拡張のは意味がない、とほとんどのパフォーマンスには影響しませんすることができます。

プロセス

LVMパーティションメソッドを作成するには、次のステップに分かれ、実際には非常に簡単です:

1、仕切り部を作成します

現在、LVMパーティションのfdisk以上推奨ツールをやって、ない手放せませんと言ってますが、fdiskがより便利点であってもよいです。次のようにプロセスは以下のとおりです。

# fdisk /dev/nvme0n1
Command (m for help): n ## 新建
Command action
   e   extended
   p   primary partition (1-4)
p ## 主分区

Partition number (1-4): 1 ## 分区号
First cylinder (2048-543352123, default 2048):  ## 回车用默认的1
Last cylinder, +cylinders or +size{K,M,G} (2048-543352123, default 543352123): ## 回车默认大小大小

Command (m for help): t ## 改变toggle类型
Selected partition 1
Hex code (type L to list codes): 8e ## LVM 的分区代码8e
Changed system type of partition 1 to 8e (Linux LVM)

2、物理ボリュームのPVを作成します

パーティションの終了後行う必要がありますでしょう直接作成したばかりのパーティションに、物理ボリュームを作成することです
は、pvcreate:

# pvcreate /dev/nvme0n1p1

3.仮想ボリュームVGを作成します。

物理ボリュームのプレーを作成したら、ディスクに仮想ボリュームを作成する必要があります。仮想ボリュームを物理ボリュームの複数で構成してもよいことに留意されたいです。例えば:

# vgcreate nvme /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1

このことの意義は、コマンドでは、/ dev / nvme0n1p1は、/ dev / nvme1n1p1は、/ dev / nvme2n1p1 3やったPVのパーティション構成から仮想ボリュームを作成するのNVMeと呼ばれているということです

4、作成論理ボリュームLG

このステップでは、基本的にLVMを作成するためには、最後に来た、そして最後のステップは、仮想ボリュームに論理ボリュームを作成することです。次のように:

# lvcreate -L 2.91T -n data nvme

このコマンドは、あなたがこのようにすることができ、すべてを一度あなたが、容量が不足したい場合は、LVMパーティションとして指定されたデータのための仮想ボリュームのNVMeから論理ボリューム2.91Tを作成するためのものです。

# lvcreate -l -n data nvme

私たちは/のNVMe /ファイルデータの構造を見ることができます以下のlinuxの/ dev /フォルダのこの時点で。

5、マウントおよび更新ファイル

LVMパーティションを作成した後、我々はシステムパーティションパスにハングアップする必要があります。あなたは、パス/データをマウントするとします。

# mkdir /data ##创建该路径
# mount /dev/mapper/nvme-data /data ##需要注意的时候这里推荐使用/dev/mapper/nvme-data作为挂载的设备路径,而不是/dev/nvme/data

BLKIDコマンドによって、この新しいLVMパーティションのUUIDを取得した後、それには/ etc / fstabをを更新

スクリプト

上記のLVM実装では、シェルスクリプトから直接達成することができます:

#!/bin/bash

##本案例中以服务器的/dev/nvme0n1这块nvme磁盘为例进行操作
OPTS="noatime,nobarrier,errors=remount-ro,nofail"   ##部分写入/etc/fstab的固定变量
umount /data/ && parted /dev/nvme0n1 rm 1   ## 首先确保目标磁盘没有残留的分区信息。
echo "n
p
1


t
8e
w
" | fdisk /dev/nvme0n1  ##通过fdisk工具创建一个分区
echo "y
" | pvcreate /dev/nvme0n1p1     ##创建一个物理卷
echo "y
y
y
" | vgcreate nvme /dev/nvme0n1      ##创建一个虚拟卷
echo "y
" | lvcreate -L 2.91T -n data nvme && mkfs.ext4 /dev/nvme/data && mount /dev/mapper/nvme-data /data/
##创建一个逻辑卷并进行格式化,然后挂载到目标路径
sed -i '$d' /etc/fstab      ##将UUID等相关信息更新到/etc/fstab中
#do
    if [ $? -eq 0 ]; then
        UUID=$(blkid /dev/mapper/nvme-data | sed -e 's/.*\(UUID=.*\) TYPE.*/\1/')
        echo -e "${UUID}\t\t/data\t\text4\t\t${OPTS}\t\t0 0" >> /etc/fstab
    fi
    seq=$(($seq+1))
#done

おすすめ

転載: www.linuxidc.com/Linux/2019-08/160146.htm