
LVM一种支持在线增大和减小的分区技术
一、PV物理卷
由分区架构而成,为卷组提供空间。
二、VG卷组
由一个或多个物理卷组成,为LV提供空间。
三、LV逻辑卷
从卷组中获取空间,形成一个新的可用的LVM分区。
四、制作逻辑卷。
1、创建PV(在创建PV之前需要创建一个可用的分区,并且ID为8e)
[root@station19 media]# fdisk /dev/hda 对第一块IDE硬盘进行 *** 作。这取决于你的环境。
The number of cylinders for this disk is set to 14593.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n 新建一个分区
First cylinder (5421-14593, default 5421):
Using default value 5421
Last cylinder or +size or +sizeM or +sizeK (5421-14593, default 14593): +500M 给他500M的空间。
Command (m for help): p 查看一下当前硬盘分区的情况。
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14383730716280 83 Linux
/dev/hda33838511210241437+ 83 Linux
/dev/hda45113 1459376156132+ 5 Extended
/dev/hda551135243 1052226 82 Linux swap / Solaris
/dev/hda652445308 522081 8e Linux LVM
/dev/hda753095370 497983+ 83 Linux
/dev/hda853715420 401593+ 8e Linux LVM
/dev/hda954215482 497983+ 83 Linux
(这是新建的那快分区)
Command (m for help): t 修改分区的表示符
Partition number (1-9): 9 选择对第9个分区进行 *** 作
Hex code (type L to list codes): 8e 将标识符改为8e(只有将标识符改为8e才能支持LVM)
Changed system type of partition 9 to 8e (Linux LVM)
Command (m for help): p 再次查看一下
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14383730716280 83 Linux
/dev/hda33838511210241437+ 83 Linux
/dev/hda45113 1459376156132+ 5 Extended
/dev/hda551135243 1052226 82 Linux swap / Solaris
/dev/hda652445308 522081 8e Linux LVM
/dev/hda753095370 497983+ 83 Linux
/dev/hda853715420 401593+ 8e Linux LVM
/dev/hda954215482 497983+ 8e Linux LVM
(当前第9快分区的类型变成了8e,LVM)
Command (m for help): w 保存退出
[root@station19 media]# partprobe 重新加载分区,不加载或重启的话当前系统无法识别这个新的分区)
[root@station19 media]# pvcreate /dev/hda9 (将hda9这个分区制作成物理卷)
Physical volume "/dev/hda9" successfully created
[root@station19 media]# pvdisplay 查看PV的内容
--- Physical volume ---
PV Name /dev/hda9
VG Name
PV Size 486.31 MB / not usable 2.31 MB
Allocatable yes
PE Size (KByte) 4096
Total PE 121
Free PE 121
Allocated PE 0
PV UUID 0pE20O-EWqI-JtTY-gmeX-VJck-GUb0-Mxvx5v
(从这些信息可以看出,/dev/hda9这个物理卷不属于任何VG,它的磁盘空间为486M)
2、创建VG
[root@station19 media]# vgcreate vg /dev/hda9
Volume group "vg" successfully created
将hda9这个物理卷加入到vg这个组里(vg为自己定义的名字)
[root@station19 media]# vgdisplay
--- Volume group ---
VG Name vg
System ID
Formatlvm2
Metadata Areas1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV0
Cur LV0
Open LV 0
Max PV0
Cur PV1
Act PV1
VG Size 484.00 MB
PE Size 4.00 MB
Total PE 121
Alloc PE / Size 0 / 0
Free PE / Size 121 / 484.00 MB
VG UUID 6yOerB-EExr-sY0E-KFwO-fg0D-9Zol-RypiT5
现在查看一下,vg这个卷组就拥有了484M的空间也就是/dev/hda9这个逻辑卷的空间
3、创建LV
[root@station19 media]# lvcreate -L 300M -n lv vg
Logical volume "lv" created
创建一个LV,并给他指定拥有300M的空间,vg为指定它属于哪个卷组,也就是由哪个卷组为它提供这300M的空间。
[root@station19 media]# lvdisplay
--- Logical volume ---
LV Name/dev/vg/lv
VG Namevg
LV UUIDHIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
LV Write Accessread/write
LV Status available
# open 0
LV Size300.00 MB
Current LE 75
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
现在查看一下LV信息,现在这个lv属于vg这个卷组并拥有300M的空间
5、格式化文件系统
[root@station19 media]# mkfs.ext3 /dev/vg/lv 将lv这个逻辑卷格式化为ext3文件系统
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
76912 inodes, 307200 blocks
15360 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
38 block groups
8192 blocks per group, 8192 fragments per group
2024 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
6、挂载
[root@station19 media]# mount /dev/vg/lv /lv 将/dev/vg/lv这个分区挂在到/下的lv下
[root@station19 media]# df -H /lv/
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg-lv 305M11M 279M 4% /lv
查看一下/lv这个分区的大小,300M
到现在为止,我们已经成功的创建了一个逻辑卷,但别忘了。逻辑卷最大的功能是增大和减小,下面我们来对逻辑卷进行增大和减小。
7、增大逻辑卷
[root@station19 media]# lvextend -L 500M /dev/vg/lv
Extending logical volume lv to 500.00 MB
Insufficient free space: 50 extents needed, but only 46 available
[root@station19 media]# lvdisplay
--- Logical volume ---
LV Name/dev/vg/lv
VG Namevg
LV UUIDHIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
LV Write Accessread/write
LV Status available
# open 1
LV Size300.00 MB
Current LE 75
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
这是一个失败的例子,因为lv所属的vg只有484M,所以当我将lv扩增到500M的时候会失败,因为vg无法为lv提供500M的空间。查看一下,lv仍然只有300M。
[root@station19 media]# lvextend -L 480M /dev/vg/lv
Extending logical volume lv to 480.00 MB
Logical volume lv successfully resized
[root@station19 media]# lvdisplay
--- Logical volume ---
LV Name/dev/vg/lv
VG Namevg
LV UUIDHIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
LV Write Accessread/write
LV Status available
# open 1
LV Size480.00 MB
Current LE 120
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
现在我将lv扩增到480M,480M是vg所允许的空间大小,查看一下现在成功了。Lv被成功的扩增到了480M。
8、增大文件系统
[root@station19 media]# df -H /lv/
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg-lv 305M11M 279M 4% /lv
查看一下文件系统大小,lv这个文件系统仍是300M,因为我们之前扩展的只是它的分区大小,文件大小并没有增大,所以我们仍然只能使用300M的空间
[root@station19 media]# resize2fs /dev/vg/lv 480M
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg/lv is mounted on /lvon-line resizing required
Performing an on-line resize of /dev/vg/lv to 491520 (1k) blocks.
The filesystem on /dev/vg/lv is now 491520 blocks long.
[root@station19 media]# df -H /lv
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg-lv 488M11M 452M 3% /lv
现在用resize这个工具将/dev/vg/lv这个文件系统扩展到488M,查看一下成功了。
*注:文件系统是建立在分区之上的,分区为我们提供空间,而我们真正能直接使用的是文件系统,例如windows下我们使用的ntfs文件系统一样。而在linux下使用的是ext3格式的文件系统。所以文件系统只能比分区小,不能比分区大。
9、缩小文件系统和分区
(1)减小文件系统时需要现卸载,因为resize这个工具不支持在线减小。
[root@station19 media]# umount /lv 卸载
[root@station19 media]# e2fsck -f /dev/vg/lv
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg/lv: 11/121440 files (9.1% non-contiguous), 25872/491520 blocks
在减小文件系统之前需要先检查一下分区的完整性。
[root@station19 media]# resize2fs /dev/vg/lv 100M 将文件系统减小到100M
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg/lv to 102400 (1k) blocks.
The filesystem on /dev/vg/lv is now 102400 blocks long.
(2)缩小分区
[root@station19 media]# lvreduce -L 100M /dev/vg/lv
WARNING: Reducing active logical volume to 100.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv? [y/n]: y
Reducing logical volume lv to 100.00 MB
Logical volume lv successfully resized
将分区缩小到100M
[root@station19 media]# mount /dev/vg/lv /lv/
[root@station19 media]# df -H /lv/
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg-lv 102M11M88M 11% /lv
[root@station19 media]# lvdisplay
--- Logical volume ---
LV Name/dev/vg/lv
VG Namevg
LV UUIDHIc32H-DR98-Ymd1-Flhy-1Z2u-iU1Q-e2znLB
LV Write Accessread/write
LV Status available
# open 1
LV Size100.00 MB
Current LE 25
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
挂载、查看,成功!文件系统和分区都为100M
10、增大与减小VG
这个很简单,VG是由多个物理卷构成的,只要将物理卷加入VG就可以实现增容,移出就能实现减小。
[root@station19 media]# pvcreate /dev/hda10 将一块新的lvm格式的分区做成物理卷
Physical volume "/dev/hda10" successfully created
[root@station19 media]# vgextend vg /dev/hda10 将hda10这个分区加入到vg这个组
Volume group "vg" successfully extended
[root@station19 media]# vgdisplay
--- Volume group ---
VG Name vg
System ID
Formatlvm2
Metadata Areas2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV0
Cur LV1
Open LV 1
Max PV0
Cur PV2
Act PV2
VG Size 968.00 MB
PE Size 4.00 MB
Total PE 242
Alloc PE / Size 25 / 100.00 MB
Free PE / Size 217 / 868.00 MB
VG UUID 6yOerB-EExr-sY0E-KFwO-fg0D-9Zol-RypiT5
现在查看一下,VG这个卷组拥有了将近1G的空间。
减小、
root@station19 media]# vgreduce vg /dev/hda10
Removed "/dev/hda10" from volume group "vg"
[root@station19 media]# vgdisplay
--- Volume group ---
VG Name vg
System ID
Formatlvm2
Metadata Areas1
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV0
Cur LV1
Open LV 1
Max PV0
Cur PV1
Act PV1
VG Size 484.00 MB
PE Size 4.00 MB
Total PE 121
Alloc PE / Size 25 / 100.00 MB
Free PE / Size 96 / 384.00 MB
VG UUID 6yOerB-EExr-sY0E-KFwO-fg0D-9Zol-RypiT5
将hda10这个物理卷从VG中移出,再查看,VG又被减小了。
linux去重命令是什么呢?在介绍uniq命令之前,我们先来新建在下面的案例中需要用到的文件/tmp/uniq.txt,内容如下
默认情况下uniq只会检索相邻的重复数据从而去重。在/tmp/uniq.txt中虽然“onmpw web site” 有三条,但是其中一条是和其他两条不相邻的,所以只去重了一条,同理“error php function”也是这种情况。
鉴于以上的检索机制,所以uniq一般情况下要和sort命令一块儿使用。
复制代码
# sort 1.txt | uniq
alpha css web
cat linux command
error php function
hello world
onmpw web site
recruise page site
repeat no data
wello web site
复制代码
现在再看是不是所有的重复项都已经经过去重处理了。
好了,小试牛刀一把以后,下面我们开始对uniq命令的选项进行简单的介绍。
-c 统计每一行数据的重复次数
复制代码
sort 1.txt | uniq -c
1 alpha css web
1 cat linux command
2 error php function
1 hello world
3 onmpw web site
1 recruise page site
1 repeat no data
1 wello web site
复制代码
我们看 “error php function”出现了两次,“onmpw web site”出现了三次。其余的都没有重复项所以为1。
-i 忽略大小写
在1.txt中添加一行数据 “Error PHP function”
复制代码
cat 1.txt
alpha css web
cat linux command
error php function
hello world
onmpw web site
onmpw web site
wello web site
Error PHP function
recruise page site
error php function
repeat no data
onmpw web site
复制代码
复制代码
sort 1.txt | uniq –c
1 alpha css web
1 cat linux command
2 error php function
1 Error PHP function
1 hello world
3 onmpw web site
1 recruise page site
1 repeat no data
1 wello web site
复制代码
我们看结果,uniq默认是区分大小写的。使用-i可以忽略掉大小写问题
复制代码
sort 1.txt | uniq –c –i
1 alpha css web
1 cat linux command
3 error php function
1 hello world
3 onmpw web site
1 recruise page site
1 repeat no data
1 wello web site
复制代码
现在再看是不是大小写已经忽略掉了。
-u 只输出没有重复的数据
复制代码
sort 1.txt | uniq –iu
alpha css web
cat linux command
hello world
recruise page site
repeat no data
wello web site
复制代码
看到没,结果中的“error php function”和“onmpw web site”都没有被输出。
-w N 表示从第一个字符开始只检索N个字符来判重。
复制代码
sort 1.txt | uniq –iw 2
alpha css web
cat linux command
error php function
hello world
onmpw web site
recruise page site
wello web site
复制代码
这里我们让uniq只对前两个字符进行检索,recruit 和 repeat前两个字符都是re,所以这两行也被认为是重复的。
-f N 表示略过前面N个字段,从第N+1个字段开始检索重复数据。以空格符或者tab键为分隔符。
复制代码
sort 1.txt | uniq –icf 2
1 alpha css web
1 cat linux command
3 error php function
1 hello world
4 onmpw web site
1 repeat no data
1 wello web site
复制代码
我们在结果中可以看到,这是略过前面的2个字段,从第三个字段开始判重的。“recruise page site” 和 “onmpw web site”的第三个字段相同,所以被认为是相同的数据。但是我们看到,“wello web site”和“onmpw web site”不但第三个字段相同,第二个也相同。那为什么它不被计入“onmpw web site”的重复数据中呢。对于这个问题就要回到前面说的,uniq只检测相邻的数据是否是重复的。
要解决这个问题还需要在sort命令上着手。还记得sort命令的-k选项吗,没错,我们就用它来解决。
复制代码
sort –k 2 1.txt | uniq –icf 2
1 alpha css web
1 cat linux command
1 repeat no data
1 recruise page site
3 error php function
4 onmpw web site
1 hello world
复制代码
我们看,是不是解决了。
-s N表示略过前面N个字符,关于这个选项的例子我们这里就不再举了,该选项和-f N的用法差不多。只不过-f N是略过前面N个字段;-s是略过前面N个字符。
-d 只输出有重复项的第一条的数据。
sort 1.txt | uniq -idw 2
repeat no data
error php function
onmpw web site
结果只有这三条。为什么会有“repeat no data”这条数据,这里注意-w 2的应用。
-D 对于重复项全部输出
复制代码
sort 1.txt | uniq –iDw 2
repeat no data
recruise page site
error php function
error php function
Error PHP function
onmpw web site
onmpw web site
onmpw web site
复制代码
好了,关于uniq的选项的所有常用的命令已经都介绍完了。关于uniq更详细的信息可以使用命令info uniq。
linux系统下df命令可以用来查看磁盘已被使用多少空间和还剩余多少空间,下面是df命令的具体介绍:1、df命令功能:
df命令作用是列出文件系统的整体磁盘空间使用情况,可以用来查看磁盘已被使用多少空间和还剩余多少空间。
2、语法:
df[-ahHiklmPT][--block-size=
3、补充说明:
df命令可显示磁盘的文件系统与使用情形。
举例:
1、-a或--all 包含全部的文件系统。
[root@iZ2zed6nnllpn4fbw79v1dZ~]#df-a
Filesystem 1K-blocks UsedAvailableUse%Mountedon
/dev/xvda1 412828801808452 37377380 5%/
proc 00 0 -/proc
sysfs 00 0 -/sys
devpts 00 0 -/dev/pts
tmpfs 5091640 509164 0%/dev/shm
none 00 0 -/proc/sys/fs/binfmt_misc
none 00 0 -/proc/xen
2、--block-size=
[root@iZ2zed6nnllpn4fbw79v1dZ~]#df--block-size=10240
Filesystem 10K-blocks UsedAvailableUse%Mountedon
/dev/xvda14128288180846 3737738 5%/
tmpfs50917 0 50917 0%/dev/shm
3、-h或--human-readable 以可读性较高的方式来显示信息。
[root@iZ2zed6nnllpn4fbw79v1dZ~]#df-h
Filesystem Size UsedAvailUse%Mountedon
/dev/xvda140G 1.8G 36G 5%/
tmpfs 498M 0 498M 0%/dev/shm
4、-H或--si 与-h参数相同,但在计算时是以1000Bytes为换算单位而非1024Bytes。
[root@iZ2zed6nnllpn4fbw79v1dZ~]#df-H
Filesystem Size UsedAvailUse%Mountedon
/dev/xvda143G 1.9G 39G 5%/
tmpfs 522M 0 522M 0%/dev/shm
5、-i或--inodes 显示inode的信息。
[root@iZ2zed6nnllpn4fbw79v1dZ~]#df-i
Filesystem InodesIUsed IFreeIUse%Mountedon
/dev/xvda1 2621440483492573091 2%/
tmpfs 127291 1 127290 1%/dev/shm
以上就是小编今天的分享了,希望可以帮助到大家。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)