基本的な導入
のLinuxユーザーは、Linuxオペレーティングシステムをインストールする際に困難な決断を発生する最も一般的な問題の一つは、正しく、適切なハードディスク領域を割り当てるために、パーティションのサイズを評価する方法です。Linuxの論理ディスクボリューム管理機能の出現により、これらの問題が解決され、
LVMは、論理ディスクボリューム管理(論理ボリュームマネージャ)短いですが、LVMが上に構築され、Linuxでディスクパーティションを管理するための仕組みでありますハードディスクやパーティションの上にロジック層は、ディスクのパーティション管理の柔軟性を向上させます。
LVM基本用語:
1)物理的な記憶媒体:ハードディスク、等:これは、記憶装置システムを指すの/ dev / HDAは、/ dev / sdaに、など、ストレージシステム記憶部の最も低いレベルです。
2)物理ボリュームの物理ボリューム(PV)
物理ボリュームがハードディスクのパーティションまたはデバイスを指す(例えば、RAID)論理ディスクパーティションから同じ機能を有するが、基本的なストレージ論理ブロックLVM-である
3)のボリュームグループボリュームグループ(VG)
LVMボリューム1つまたは複数の物理ボリュームのグループが、より具体的には、これらの物理ボリュームによって提供されるPEの数を含んでいます。
4)論理ボリュームの論理ボリューム(LV)
私たちは、ファイルシステム上の論理ボリュームの情報が(のような/など家庭または/ usr、)を確立することができます保存する場所です。
5)PE(物理エクステント)
各物理ボリュームのは、アドレス可能な最小単位のLVMとすることができる固有の番号を有するPEと呼ばれる基本単位、PEに分割されています。PEのサイズは、4メガバイトにデフォルト設定可能です。
具体的な動作
1)のパーティションを作成するには
、[ルートを@テストサーバー〜] #fdiskの-l // どこのディスクをチェックし
、[ルート@テストサーバー〜] #fdiskのは/ dev / sdaに// ディスクを入力します(キーがかもしれ順次p型> N - > E->入力- > Enterキーを押します- >、このすべてのディスクの空き領域に)パーティションを作成している、ワット
コマンド(mでヘルプ):nは // nは、パーティションを追加するためのpビューパーティション
第1シリンダ(2898から10443デフォルト2898):// Enterキーを押しますことを決めた
シリンダー開始選択したデフォルト値を使用して2898 //デフォルトの
最終シリンダーまたは+サイズまたは+サイズM + 2G //:または+ sizeK(289810443、デフォルト10443) の大きさに2Gを
コマンド(mでヘルプ):T // パーティションタイプの変更
パーティション番号(1-5):5 //パーティションから選択される
(リストコードにタイプL 16進コード ):Lを// リストパーティションタイプ
進コード(リストコードにタイプL ):8E //はLVMとしてマークされ、新しいパーティションを追加する
コマンド(mでヘルプ):p -で//チェックパーティションテーブル
は/ dev / sda5です2756 2999 1959898+ 8EのLinux LVM
ヘルプのコマンド(メートル):W //保存し
ます。[root @テストサーバー〜] #partprobeは/ dev / sdaに// 代わりに、再起動のパーティション識別システム()
[ルート・サーバのテスト@〜]#mkfs.ext4は/ dev / sda5です//新しいフォーマットパーティションを追加します。
2)を作成する(例えばのPV)は、pvcreateとして、LVM装着動作コマンド"をyumをLVM2インストール"
[ルート@テストサーバー〜] #は、pvcreateは/ dev / sda5です// PV作成
"は/ dev / sda5ですが、"ディスクへの書き込み物理ボリュームのデータを
ボリュームの物理"は/ dev / sda5です"作成に成功し
[テスト-Serverのルート@〜] //#PVSまたはpvdisplay、現在の情報PVを見
たAttr PSIZE pfree FMTののpV VG
の1.87グラムのは/ dev / sda5ですLVM2 A-- 1.87グラム
3)VGの作成
[テストサーバー@ルートを〜] #vgcreate VG0は/ dev / sda5です// VG0 現在のVG名
正常に作成ボリュームグループ"VG0"
[試験-サーバー@ルート〜] //またはvgdispalyの#Vgsは、ビュー情報VG
VG #PV #LV #SNたAttr VSIZE vfree
VG0 1 0 0 WZ - N - 1.87グラム1.87グラム
4)LVM(LVMを作るために、「無料PE」利用可能vgdisplayビューのスペースを使用して作成。例えば、500Mのための無料PEスペースにここを参照してください、500Mのみ)、最大LVMを作るために使用することができます
名前で#lvcreate -L -nサイズボリュームグループ
PE -nボリューム・グループの下に数-l名前を#lvcreate
[ルート・サーバのテスト@〜]#lvcreateの-L 500M + -n LV01 VG0
作成した論理ボリューム「LV01」
[ルート・サーバ〜テスト@ ] lvdispaly#LVS //または、LVが詳細表示さ
れたAttrの起源スナップ%LSIZEのLV VGをコピー%の変換移動ログイン
LV01 VG0 -Wi-A- 500.00M
あなたによって/には/ var /スプール/メールルートをメールを持っている
[テスト- @ルートサーバー〜]#mkfs.ext4は/ dev / VG0 / LV01 // フォーマット
5)LVM使用して
、[ルート@テストサーバー〜] #ます。mkdir / mntに/ LV01 // ビルド吊りディレクトリを
[テストサーバー@ルート〜] #マウントは/ dev / VG0 / LV01を/ mnt / LV01 // 準備LVMアップマウント
[ルート・サーバのテストを@〜]#DF -H
[テスト-Serverのルート@〜]#タッチ/mnt/lv01/lv.file
[テスト-Serverのルート@〜] #lsを/ mnt / LV01
LVMの増加
になりましパーティション800Mまで延伸し、そのようなLV元のサイズ500M、。
VG0内部に残った空間があることを提供する(vgdispaly無料PEを表示)。
余分なスペースのVG0グループがあるかどうかを確認するためにVgdisplay最初に使用。
[ルートテスト・サーバー〜@]#vgdisplay
.......
のAlloc PE / 1277サイズ/ 500M
フリーPEなど/サイズ490 / 300M
VG UUID hYScku-I097- iUKq-WKnd - bxMg gEfQ-1wn5nU
.......
-------------------------------------------------- --------------------------------------------
なし残りの必要性vgextendた場合拡張。例えば、パーティション/ dev / sdb1が作成
#は、pvcreateは/ dev / sdb1が
VG0グループに#vgextend VG0は/ dev / sdb1が拡大を
見るには余分なスペースをVG0#1 vgdisplay
----------------- -------------------------------------------------- ---------------------------
[テストサーバー〜@ルート] #は、lvextend -L + 300Mは/ dev / VG0 / LV01 // 使用"+ 300M"または"490"であり、
成功裏にリサイズ論理ボリュームLV01
[ルートテスト・サーバー@〜]#resize2fsの/ dev / VG0 / LV01 //図面ファイルシステム
[テスト・サーバールート@〜]#は、LVS
のAttr起源スナップ%LSIZEコピー%移動は、ログ変換のLV VG
LV01 VG0 -Wi-AO 800.00M //サイズが800Mなりに
LVMを削減
[ルートテストサーバー@〜] #umountのは/ dev / VG0 / LV01 // アンロード論理ボリューム/ dev / VG0 / LV01、またはアンロードを/ mnt / LV01ディレクトリがかもしれ
[テストサーバー@ルート〜] # DF -h //参照
[テストサーバー@ルート〜] #e2fsckは-fは/ dev / VG0 / LV01 // ディスクチェック
[テストサーバー@ルート〜] #resize2fsのは/ dev / VG0 / LV01 500M // 後退500Mのファイルシステム
[テスト・サーバールート@〜]#lvreduce -L 500Mは/ dev / VG0 / LV01 //パーティション500Mまで後退
WARNING:MB 500.00にアクティブな論理ボリュームを減らす
これはあなたのDATA(ファイルシステムなど)を破壊することが
ドゥ本当にあなたにしたいためLV01を減らす[Y- / N-] :? Y-
#LVS [テスト-Serverの〜@ルート]
移動のためのログのコピー%の変換LV VG Attrの起源スナップ%LSIZE
LV01 VG0 -Wi-A- 500.00M //この時点500Mの大きさになります
[ルート@テストサーバー〜] #マウントは/ dev / VG0 / LV01を/ mnt / LV01 // 再マウントパーティション
[ルート@テストサーバー〜] #DF -h // 参照
[ルート@テストサーバー〜] # lsのを/ mnt / LV01 //ビューファイル
-------------------------------------------------- --------------------------------------------------
特に注目すべきである:
resize2fsの順序は、EXT2、EXT3、ext4のファイルシステムを対象とします。
xfs_growfsは、XFSファイルシステムであるためのコマンド
------------------------------------------ -------------------------------------------------- --------
LVMのスナップショットシステムのの
原則:システムのスナップショット(スナップショット)は、データのLVMのスナップショットのもう一つの重要な機能は、データの後に任意の変更は、元のデータがスナップショット領域に移動されるように、ちょうど写真のレコードのように、一度に記録されるべきです、それは地域の地区やスナップショットファイルシステムの共有によって変更されていません。
スナップショット領域の面積とのスナップショットが同じVGの上になければならないので、元のスナップショットとLV領域を共有PEの多くは、以来、
操作:
上記の例に作成LV01に
1)LVM搭載
[ルートテストサーバー@〜]#マウント/ DEV / VG0 / LV01 / MNT / LV01
#CD / MNT / LV01 [テストサーバー〜@ルート]
[テストサーバー@ルートLV01]#タッチ{A、B、C}、{A、B、C}
[ルート@サーバー-LV01試験] LS#
たrestoresymtableロスト+ lv.file AA BA BB BC AC AB&CA CB CCが見つかった
2)LVMのスナップショット
[試験-サーバーLV01 @ルート] -s -n#64Mは、lvcreate -L-LVバックアップ/ DEV / VG0 / LV01
論理ボリュームの"Backup-LV"を作成し
たスナップショットをマウントする。3)
[テスト-Serverのルートを@ LV01]#ます。mkdir / mntに/ LV-バックアップ
-o#[試験ルート・サーバMNT @]マウントROは/ dev / VG0 / LV-バックアップを/ mnt / LV-バックアップ/
4)备份快照
[ルート@テストサーバーTMP]#ダンプ-0u -f /tmp/lv-backup.dumpを/ mnt / LV-バックアップ/ //备份
DUMP:日11月11日14:このレベル0のダンプの日付: 53:31 2012
DUMP:ダンプは/ dev /マッパ/ VG0-LV -バックアップ(/ MNT / LV-バックアップ)/tmp/lv-backup.dumpする
5)删除快照
[ルート@テストサーバTMP]#アンマウント/ MNT / LV-バックアップ/
[ルート@テストサーバーのTMP]#lvremoveは/ dev / VG0 / LV-バックアップ
あなたが本当にアクティブな論理ボリュームLV-バックアップを削除しますか?[Y / N]:yの
論理ボリューム"LV-バックアップ"正常に削除
6)清空の/ dev / VG0 / LV01下内容
[テストサーバーTMP @ルート]#アンマウント/ MNT / LV01
[テストサーバーのTMP @ルート]# mkfs.ext3は/ dev / VG0 / LV01
mke2fsの1.39(29月-2006)
ファイルシステムのラベル=
OSの種類:Linuxの
7)恢复数据
#マウントは/ dev / VG0 / LV01を/ mnt / LV01 [@テスト・サーバーtmpのルート]
#CDを/ mnt / LV01 [テスト-サーバーtmpは@ルート]
#LS [試験-サーバーLV01 @ルート]
ロスト+が見つかっ
[ルート@テストサーバーLV01]#復元-rf /tmp/lv-backup.dump // 復元
復元:./lost+found:ファイルが存在する
#LS //そのため、すべて削除する前に、これらのようにテスト・サーバーLV01 @ [ルート]変更された部分である
CAのCB BCをAA、AB、ACのBAのBB +失われたCCがlv.fileたrestoresymtableを発見
LVM的关闭(删除)
[ルート@テストサーバー〜]#umountのを/ mnt / LV01
[ルート@テストサーバー〜]#lvremoveは/ dev / VG0 / LV01 //删除LV
あなたが本当に削除しますかアクティブな論理ボリュームLV01 ?[Y / N]:Y
論理ボリューム"LV01"正常に削除
[ルートテストサーバ@〜]#ます。vgchange -an VG0 //使VG0不具有アクティブ标志
0論理ボリューム(S)ボリュームグループ内の"VG0"現在アクティブ
[ルート@テストサーバー〜]#vgremove VG0 //删除VG
ボリュームグループ"VG0"は正常に削除され
ます。[root @テストサーバー〜]#pvremoveは/ dev / sda5です//删除PV
"は/ dev / sda5です"物理ボリュームのラベルに成功拭きます
=================== 仮想マシンのディスク拡張の記録の実装を掲載 ===================
オンラインLinuxサーバのハードディスク熱膨張は、実質的にLVMの実施形態によって達成される、サーバ・システムは、最良の選択のLVMディスクローディングモードがインストールされています。データパーティションが原因にある別のパーティションではなく、LVMパーティション(である私たちは、現在の仮想マシンのデータパーティション空間部が十分ではありません/見つけ、増加ビジネスデータと、XenServerの仮想化に使用される、よりは吸うです/ XenServerの仮想化システムは、インストール時に、1つのLVM、その仮想マシンの作成、選択したディスクのプロパティ)を選択しなかったときLVMオプションが有効ではありません。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
[root@uatdata-node01 ~]
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda2
99G 6.9G 87G 8% /
tmpfs 7.8G 12K 7.8G 1%
/dev/shm
/dev/xvda1
380M 66M 294M 19%
/boot
/dev/xvda5
298G 258G 40G 88%
/data
由上面可知,数据分区
/data
空间已经不多了,该服务器是hadoop数据节点,每天会产生大量的数据文件到
/data
下,故需要紧急扩容
/data
分区。
操作思路:
1)为这台虚拟机新添加一个磁盘,做成LVM逻辑卷
/dev/vg0/lv0
,挂载到
/data_new
目录下。
2)将
/data
目录下的数据全部拷贝到
/data_new
目录下,通过
rsync
拷贝(-avpgolr保持文件属性不变)
3)
umount
卸载
/data
和
/data_new
。
4)重新挂载
/dev/vg0/lv0
到
/data
下(这样做是为了保证磁盘扩容后,原来的业务程序的数据目录结构不变),并删除
/data_new
目录。
5)将挂载到之前
/data
目录下的
/dev/xvda5
格式化,并在线热扩容到新的
/dev/vg0/lv0
逻辑卷内。
操作记录:
为虚拟机添加一块新的500G的磁盘
[root@uatdata-node01 ~]
# fdisk -l
........
Disk
/dev/xvdb
: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors
/track
, 65270 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: 0x54c845dd
做成lvm逻辑卷
[root@uatdata-node01 ~]
# fdisk /dev/xvdb
........
分别输入:
p
#查看分区情况
n
#创建分区
p
#创建逻辑分区
1
#选择分区序列号,即盘符为/dev/xvdb1
回车
#默认从扇区起点开始
回车
#默认磁盘所有空间
w
#保存
[root@uatdata-node01 ~]
# partprobe /dev/xvdb1 #或直接执行"partprobe",这一步为更新分区表,也可以不执行,或执行有报错可以忽略
[root@uatdata-node01 ~]
# yum install -y lvm2 #安装lvm的工具
安装pv
[root@uatdata-node01 ~]
# pvcreate /dev/xvdb1
[root@uatdata-node01 ~]
# pvs
安装vg
[root@uatdata-node01 ~]
# vgcreate vg0 /dev/xvdb1
[root@uatdata-node01 ~]
# vgs
安装lv
[root@uatdata-node01 ~]
# vgdisplay
.............
Free PE / Size 499876 / 499.99 GiB
#先使用vgdisplay查看可以用以创建lvm的空间有多少,这里表示剩余空间为499.99G可用
[root@uatdata-node01 ~]
# lvcreate -L +499.99G -n lv0 vg0
[root@uatdata-node01 ~]
# lvs
格式化并挂载
[root@uatdata-node01 ~]
# mkfs.ext4 /dev/vg0/lv0
[root@uatdata-node01 ~]
# mkdir /data_new
[root@uatdata-node01 ~]
# mount /dev/vg0/lv0 /data_new
拷贝数据
[root@uatdata-node01 ~]
# rsync -avpgolr /data/ /data_new
卸载并重新挂载新增磁盘到
/data
目录下
[root@uatdata-node01 ~]
# umount /data
[root@uatdata-node01 ~]
# umount /data_new
[root@uatdata-node01 ~]
# mount /dev/vg0/lv0 /data
[root@uatdata-node01 ~]
# rm -rf /data_new
把之前挂载到
/data
目录下的
/dev/xvda5
分区格式化,并热扩容到新的
/dev/vg0/lv0
分区
[root@uatdata-node01 ~]
# mkfs.ext4 /dev/xvda5
[root@uatdata-node01 ~]
# pvcreate /dev/xvda5
[root@uatdata-node01 ~]
# vgextent vg0 /dev/xvda5
[root@uatdata-node01 ~]
# vgdisplay
..........
Free PE / Size 197898 / 198.5 GiB
[root@uatdata-node01 ~]
# lvextend -L +198.5G /dev/vg0/lv0
[root@uatdata-node01 ~]
# resize2fs /dev/vg0/lv0 //拉伸文件系统
[root@uatdata-node01 ~]
# lvs
最后查看下扩容后的
/data
盘的大小
[root@uatdata-node01 ~]
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda2
99G 6.9G 87G 8% /
tmpfs 7.8G 12K 7.8G 1%
/dev/shm
/dev/xvda1
380M 66M 294M 19%
/boot
/dev/mapper/vg0-lv0
681G 138G 509G 22%
/data
|