lvm如何使用
lvm如何使用
这篇文章主要为大家展示了“lvm如何使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“lvm如何使用”这篇文章吧。
lvm的使用
lvm是很有用的,在一个生产系统中,如果空间不够用,在没有用lvm之前,要想扩容是很不方便的
要找一个想扩大到你想要容量的存储,然后要把原有数据导入到新的设备中,对原有设备也是一种
浪费,有了lvm就不一样了,我可以在不改变原有系统的条件下,直接对对系统怎加存储空间
下面是我146的硬盘的分区情况,我这个服务器计划用户oracle数据库
一些空间变化不大的分区我还是采用ext3格式,但一些0空间变化很大的分区,我采用了lvm
这样对于以后的扩展做充分的准备
[root@dbolap ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 981M 202M 730M 22% /
none 1004M 0 1004M 0% /dev/shm
/dev/sda8 2.0G 36M 1.8G 2% /tmp
/dev/sda6 3.9G 2.0G 1.8G 53% /usr
/dev/sda7 2.0G 115M 1.8G 7% /var
/dev/mapper/vg_home-lv_home
9.6G 54M 9.1G 1% /home
/dev/mapper/vg_u01-lv_u01
110G 92M 105G 1% /u01
[root@dbolap ~]#
一.lvm的使用步骤:
1).建立LVM类型的分区 (8e)
2).建立LVM物理巻PV
3).建立LVM巻组VG
4).建立LVM逻辑巻LV
5).建立文件系统
6).挂接文件系统
7).使用文件系统
二.lvm开机自动挂载
fstab文件的作用 :
文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /directoryname"命
令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、mount
、umount的等命令都利用该程序。
lvm开机自动mount,可以修改/etc/fstab 文件,然后重新启动机器即可
eg:
[root@dbolap ~]# vi /etc/fstab
# This file is edited by fstab-sync – see 'man fstab-sync' for details
LABEL=/ / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
none /dev/shm tmpfs defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
LABEL=/tmp /tmp ext3 defaults 1 2
LABEL=/usr /usr ext3 defaults 1 2
LABEL=/var /var ext3 defaults 1 2
LABEL=SWAP-sda5 swap swap defaults 0 0
/dev/vg_home/lv_home /home ext3 defaults 1 0
/dev/vg_u01/lv_u01 /u01 ext3 defaults 1 0
/dev/hda /media/cdrom auto pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto,managed 0 0
/dev/scd0 /media/cdrecorder auto pamconsole,fscontext=system_u:object_r:removable_t,exec,noauto,managed 0 0
~
~
下面简单介绍下fstab文件的格式说明:
下面是/etc/fatab文件的一个示例行:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1
fs_spec – 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:
IDE设备一般描述为/dev/hdaXN,X是IDE设备通道(a, b, or c),N代表分区号;SCSI设备一描述为/dev/
sdaXN。对于NFS情况,格式一般为:
,例如:`knuth.aeb.nl:/'。对于procfs,使用`proc'来定义。
fs_file – 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包
含空格的情况,用40来表示空格。
fs_type – 定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的常用文件类型)、vfat
(Windows系统的fat32格式)、NTFS、iso9600等。
codepage国家语言代码页
iocharset字符集
fs_options – 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于
大多数系统使用"defaults"就可以满足需要。其他常见的选项包括:
选项 含义
ro 以只读模式加载该文件系统
sync 不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度
user 允许普通用户加载该文件系统
quota 强制在该文件系统上进行磁盘定额限制
noauto 不再使用mount -a命令(例如系统启动时)加载该文件系统
fs_dump – 该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0
fs_pass – 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,
其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0
三.lvm的lv在线扩容方法
通常我们操作pvextend之后,必须执行resize的相关命令才可以。通常安全起见,都是offline下,也就是umount之后才做的。
但是有时候我们是不可以让某些生产系统offline的。所以必须保证online的前提下来extend相应的LV。
以下就是在Online情况下,对于以下的文件系统类型所应执行的命令。
1:ext3
ext2online /dev/foovg/lvbar
2:reiserfs
resize_reiserfs /dev/foovg/lvbar
3:xfs
xfs_growfs /dev/foovg/lvbar
4:jfs
mount -o remount,resize /dev/foovg/lvbar
严格来说,jfs这个不能算作online操作。如果恰好这个mounting的分区正存在IO操作,恐怕这样执行会出问题。所以这个保留,稍后我再查找一下。
四.lvm常用命令
LVM创建和使用收藏
A、概念:
1).PV(Physical Volume):物理巻,处于LVM最底层,可以是物理硬盘或者分区。
2).VG(Volume Group):巻组,建立在PV之上,可以含有一个到多个PV。
3).LV(Logical Volume):逻辑巻,建立在PV之上,相当于原来分区的概念。不过大小可动态改变。
4).PE(Physical Extend):物理区域,PV中可以用于分配的最小存储单位,可以在建立PV时指定,如1,2,4,8… …64M,同一VG中的所有PV的PE应该相同。
5).LE(Logical Extend):逻辑区域,LV中可以用于分配的最小存储单元,取决于LV所在PV中PE的大小,是PE的整数倍。
6).VGDA(Volume Group Descriptor Area):巻组描述区域,存在于每个PV中,用于描述该PV本身、PV所含VG、VG中的LV以及LV中的物理区域分配等信息,在使用pvcreate命令建立PV时建立。
B、步骤:
1).建立LVM类型的分区
2).建立LVM物理巻PV
3).建立LVM巻组VG
4).建立LVM逻辑巻LV
5).建立文件系统
6).挂接文件系统
7).使用文件系统
C、命令
1).PV(物理巻)相关
<1>pvdisplay:显示PV属性
<2>pvscan:在系统所有硬盘上查找PV
<3>pvcreate:创建PV(在PV上初始化VGDA)
例如:为/dev/hda1创建了PV
[root@mylinux]# pvcreate /dev/hda1
<4>pvdata:显示某个PV的详细信息
例如:
[root@mylinux]# pvdata /dev/hda1
<5>pvchange:改变PV属性
<6>pvmove:在PV间移动PE/LE
2).VG相关
<1>vgdisplay:显示VG巻组属性
<2>vgscan:查找系统现有VG巻组
<3>vgcreate:创建VG巻组(在VG上初始化VGDA)
例如:创建包含物理巻hda1和hdb1的逻辑巻组demoVG1
[root@mylinux]# vgcreate demoVG1 /dev/hda1 /dev/hdb1
<4>vgdata:显示VG巻组上的VGDA信息
<5>vgchange:改变VG巻组属性
此命令有两个常用的参数:
-a:,–available{y|n}:在操作VG时,控制一个VG的可使用性,换句话说控制一个VG能否被系统内核识别。
-x,–allocation{y|n}:控制一个VG能否被扩充或者缩减(控制一个VG内的PV能否被分配)。
<6>vgmove:在VG巻组间移动PE/LE
<7>vgextend:用于向VG中添加新的PV
例如:[root@mylinux]# vgextend demoVG1 /dev/hdd1
<8>vgreduce:用于从VG中删除PV
例如:[root@mylinux]# vgreduce demoVG1 /dev/hdd1
<9>vgmerge:用于合并巻组。待合并的VG必须处于非活动状态。
例如:将demoVG21和 demoVG2合并到demoVG1中并显示结果:
[root@mylinux]# vgmerge demoVG1 demoVG2
vgmerge –ERROR:volume group "demoVG2" must be inactive
[root@mylinux]# vgchange -a n demoVG2
vgchange –volume group "demoVG2" successfully deactivated
[root@mylinux]# vgmerge demoVG1 demoVG2
vgmerge –doing automatic backup of volume group "demoVG1"
vgmerge –volume group "demoVG2" successfully merged into "demoVG1"
<10>vgsplit:用于拆分已经存在的VG,VG必须处于活动状态。
例如:
[root@mylinux]# vgchange -a y demoVG2
[root@mylinux]# vgsplit demoVG2 demoVG4 /dev/hdd2 /dev/hdd5 /dev/hdd6 /dev/hdd7
<11>vgremove:用于删除VG,要求待删除的VG必须处于非激活状态。
例如:
[root@mylinux]# vgchange -a n demoVG1
[root@mylinux]# vgremove demoVG1
<12>vgrename:用于重命名VG,不要求VG处于非激活状态。
例如:
[root@mylinux]# vgrename demoVG2 demoVG3
<13>vgck:用于检测VG中VGDA的一致性。
<14>vgcfgbackup:备份系统所有VG中各物理巻的VGDA信息到/etc/lvmconf
[root@mylinux]# vgcfgbackup
<15>vgcfgrestore:用于从/etc/lvmconf恢复系统所有VG中各物理巻的VGDA信息。VG必须处于非激活状态。
<16>vgmknodes:用于vgcfgrestore后,重建节点信息,重建已有巻组的巻组目录和其中的设备文件。
例如:
[root@mylinux]# vgchange -a n demoVG3
[root@mylinux]# vgmknodes
<17>vgexport:用于输出巻组。待输出巻组必须为非激活状态。巻组中的物理巻需要被转移到其它系统中使用时,就需要使用这个命令。
例如:
[root@mylinux]# vgchange -a n demoVG3
[root@mylinux]# vgexport demoVG3
<18>vgimport:用于输入巻组。
例如:
[root@mylinux]# vgimport demoVG1 /dev/hdd1
3).LV相关
<1>lvdisplay:显示LV的属性 <2>lvscan:查找系统现有LV
<3>lvcreate:创建LV
<4>lvdata:显示LV上的LVDA信息
<5>lvchange:改变LV属性
例如:
[root@mylinux]# lvchange -a n /dev/demoVG1/demoLV11
<6>lvmove:在LV间移动PE/LE
<7>lvextend:扩展LV容量。LVM的最突出特点就是随时动态的调整LV空间大小。
例如:
[root@mylinux]# lvscan|grep LV11
lvscan –ACTIVE "/dev/demoVG1/demoLV11" [200MB]
[root@mylinux]# lvextend -L +10m /dev/demoVG1/demoLV11 (为demoLV11增加10MB的空间)
<8>lvreduce:减小LV容量。
例如:
[root@mylinux]# lvextend -L -10m /dev/demoVG1/demoLV11 (为demoLV11减少10MB的空间)
<9>lvrename:LV重命名
例如:
[root@mylinux]# lvrename /dev/demoVG1/demoLV11 /dev/demoVG1/demoLV01
<10>lvremove:删除LV(逻辑巻)
例如:
[root@mylinux]# lvremove /dev/demoVG1/demoLV01 <11>resize2fs/e2fsadm/resize_reiserfs:类似于extend命令。
4).创建文件系统
<1>使用命令mkfs在demoLV31上创建ext3类型的分区:
[root@mylinux]# mkfs -t ext3 /dev/demoVG3/demoLV31
<2>使用命令mkfs.ext3在demoLV31上创建ext3分区:
[root@mylinux]# mkfs.ext3 /dev/demoVG3/demoLV31
<3>使用命令mkreiserfs在demoLV31上创建reiserfs分区:
[root@mylinux]# mkreiserfs /dev/demoVG3/demoLV31
<4>使用命令mkjfs在在demoLV31上创建jfs分区:
[root@mylinux]# mkfs.jfs /dev/demoVG3/demoLV31
5).挂接文件系统
先建立四个目录:
[root@mylinux]# mkdir /mnt/mnt_lv11 /mnt/mnt_lv12 /mnt/mnt_jfs /mnt/mnt_reiserfs
挂接命令:
<1>mkfs挂接:
[root@mylinux]# mount -t ext3 /dev/demoVG3/demoLV31 /mnt/mnt_lv11
<2>mkfs.ext3挂接:
[root@mylinux]# mount /dev/demoVG3/demoLV31 /mnt/mnt_lv12
<3>mkjfs挂接:
[root@mylinux]# mount -t jfs /dev/demoVG3/demoLV31 /mnt/mnt_jfs
<4>mkreiserfs挂接:
[root@mylinux]# mount -t reiserfs /dev/demoVG3/demoLV31 /mnt/mnt_reiserfs
6).使用
***略***
7).LVM相关命令
<1>lvmdiskscan:检测硬盘和分区中的逻辑巻管理信息
<2>lvmsadc:收集逻辑巻的读写统计信息
<3>lvmsar:查看LVM的日志文件信息
<4>lvmchange:复位LVM组件
以上是“lvm如何使用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注高防服务器网行业资讯频道!
[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。
[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[