基础知识 -- Linux 逻辑卷管理技术1
Linux 逻辑卷管理器简介
LVM : 是Linux 逻辑卷管理器的英文缩写,它表示逻辑的磁盘,区别于传统的物理磁盘;
LVM 技术的产生是由于传统磁盘分区满足不了日益高速增长的数据存储需求, 传统磁盘分区大小是固定的,每个分区容量是死的.随着数据的增加,总有一天数据会添满你的磁盘. 当更换磁盘时,也是相当繁琐,首先要关闭机算机,然后重新分区,然后格式化分区,然后才能 copy数据.
有了LVM技术,我们就可以不需要关闭机算机, 不用重新分区. 利用现有的物理设备直接增加物理空间,我们可以随意放大或缩小存储空间.我们称之这样的空间为逻辑块或逻辑区.
在LVM中有几个重要的概念需要理解:
pv: phisical volume (最基本的概念), 要创建PV 我们使用 pvcreate 命令
vg: volume group 要创建GV 我们使用 vgcreate 命令
lv : logical volume 要创建LV 我们使用 lvcreate 命令
它们三者的组成关系是,先创建PV, 然后基于PV创建VG, 然后就可以在VG在分配LV了.其中LV的大小可以增加直至VG的大小.要放大LV,我们使用e2fsadm , 例如在VG名称为vg1的中增加名称为data的LV的大小
e2fsadm -L +10M /dev/vg1/data
当然如果VG不够了,那么我们也需要增加它,使用如下命令:
vgextend vg1 /dev/sdb1
牢记VG和LV都是可以动态放大的
创建并使用逻辑卷管理器
我的实验环境为虚拟机环境 openSUSE 11.2 操作系统, 添加了两块物理磁盘 /dev/sda 和 /dev/sdb.现在我在 /dev/sdb中增加LV
1. 首先为 /dev/sdb增加3个分区
linux-0eob:~ # fdisk /dev/sdb
Partition number (1-4): 3
First cylinder (29-261, default 29): +100M
Value out of range.
First cylinder (29-261, default 29):
Using default value 29
Last cylinder, +cylinders or +size{K,M,G} (29-261, default 261): +20M
Command (m for help): p
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xdc3e63cc
Device Boot Start End Blocks Id System
/dev/sdb1 1 14 112423+ 83 Linux
/dev/sdb2 15 28 112455 83 Linux
/dev/sdb3 29 32 32130 83 Linux
2. 初始化这3个分区为pv
在改之前还得做一件事情就是 change a partition's system id ,就是 Id 这一栏的值,我们使用fdisk命令提供的t子命 令来完成即可:
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
保存退出后
如果该磁盘没有被使用那么就不用重启操作系统, 否则必须重启操作系统.要不然接下来这一步不会成功哦
linux-0eob:~ # pvcreate /dev/sdb[1-3]
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdb3" successfully created
这样pv就创建成功了
3. 创建VG
如果是第一次创建,那么要先运行vgsan命令,这个命令会新建vg数据库的东东.
linux-0eob:~ # vgscan
Reading all physical volumes. This may take a while...
linux-0eob:~ # vgcreate vg0 /dev/sdb1 /dev/sdb2
Volume group "vg0" successfully created
linux-0eob:~ # vgdisplay vg0
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 104.00 MB
PE Size 4.00 MB
Total PE 26
Alloc PE / Size 0 / 0
Free PE / Size 26 / 104.00 MB
VG UUID MrDrOT-rGKL-QonT-XaSJ-Ob1H-lHSx-6ASxuY
4. 创建LV
linux-0eob:~ # lvcreate -n lvdata -L 20M vg0
Logical volume "lvdata" created
linux-0eob:/ # lvdisplay /dev/vg0/lvdata
--- Logical volume ---
LV Name /dev/vg0/lvdata
VG Name vg0
LV UUID tYWFX0-Msor-q6I3-dZjE-W06M-UKyj-McRdpP
LV Write Access read/write
LV Status available
# open 1
LV Size 20.00 MB
Current LE 5
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
LV 就相当于磁盘分区,所以接下来我们就格式化它
linux-0eob:/ # mke2fs -T ext3 /dev/vg0/lvdata
mke2fs 1.41.1 (01-Sep-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1280 inodes, 5120 blocks
256 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=8388608
1 block group
32768 blocks per group, 32768 fragments per group
1280 inodes per group
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
5. 测试lv
linux-0eob:/ # mount /dev/vg0/lvdata /mnt/
linux-0eob:/ # ll /mnt/
total 16
drwx------ 2 root root 16384 Mar 27 17:20 lost+found
linux-0eob:/ # touch /mnt/1.txt
linux-0eob:/ # ll /mnt/
total 16
-rw-r--r-- 1 root root 0 Mar 27 17:23 1.txt
drwx------ 2 root root 16384 Mar 27 17:20 lost+found
linux-0eob:/ # lvscan
ACTIVE '/dev/vg0/lvdata' [20.00 MB] inherit
对我这个初学者来说终于可以了
下一篇: jquery重复提交请求的原因浅析