A. linux 下磁盘管理--逻辑卷--LV
在Linux磁盘操作中,如果磁盘写满,那么就需要对磁盘进行扩容。把数据写入到更大的磁盘中,这个工作量是非常大的,而且非常容易出现错误,危险性很高,那么我们就可以使用逻辑卷管理器(LVM)来对磁盘进行管理扩容。这样就可以很轻松的,没有危险的对数据进行移动。
我们来看看LVM比传统硬盘管理的优点:
1.灵活性容量:允许多个磁盘或分区作为一个逻辑卷。
2.可以伸缩的存储池:不必格式化,用命令可以直接修改逻辑卷。
3.在线数据的分配:可以在线移动数据,可以热插拔硬盘更换磁盘。
4.设备命名方便。
5.镜像卷:很方便的做数据镜像。
6.卷快照:快照会把逻辑卷的全部内容保存。
那么逻辑卷要怎么来创建呢,我们做如下步骤:
1.在创建逻辑卷前,必须要有一块物理磁盘做物理卷(PV)。
2.由一个或多个物理卷组成一个存储池,我们叫他卷组(VG)。
3.根据卷组中的空闲物理空间,建立逻辑卷(LV)。
上面3步时创建逻辑卷的具体思路。下面我们具体操作:
创建逻辑卷步骤:
1.使用fdisk创建一个物理分区,t 选项设置类型为:linuxLVM
2.使用partprobe向内核注册新的分区。
3.创建物理卷pvcreate /dev/sdb1(需要创建的硬盘分区名,根据自己服务器查找)
4.创建卷组 vgcreate 卷组名 /dev/sdb1
5.创建逻辑卷 lvcreate -n 逻辑卷名 -L 卷组大小 卷组名
lvcreate -n abc -L 10G myvg
6.创建文件系统 mkfs.ext4 /dev/卷组名/逻辑卷名
mkfs.ext4 /dev/myvg/abc
7.创建永久挂载点(写入文件/etc/fstab),这一步就不在赘述,可以查阅我前一文章,有详细记载。
这样,我们的逻辑卷就创建成功了。
那我们怎么查看物理卷,卷组,逻辑卷呢
查看物理卷信息:pvdisplay /dev/sdb1
查看卷组信息:vgdisplay myvg
查看逻辑卷信息:lvdisplay /dev/myvg/abc
逻辑卷的扩容
如果在建立的卷组还有空间,就可以给逻辑卷扩容。那怎么做呢。
1.lvextend -L +10G /dev/myvg/abc
给逻辑卷 abc 扩容10G。减少容量直接把 + 变为 - 即可。
2.resize2fs /dev/myvg/abc 针对ext4文件
xfs_growfs /dev/myvg/abc 针对xfs文件
使扩容生效。
如果卷组空间不够,需先增加卷组空间,在对逻辑卷扩容。
1.准备物理磁盘 fdisk ,partprobe ,mkfs.ext4
2.创建物理卷
3.给原来的卷组增加物理卷 vgextend myvg /dev/sdc1,然后vgdiaplay
创建完成,那么我们需要删除逻辑卷,怎么做呢。
1.取消挂载,同时删除 /etc/fstab 文件下的挂载内容。
2.删除逻辑卷 lvremove /dev/myvg/abc
3.删除卷组 vgremove myvg
4.删除物理卷 pvremove /dev/sdb1
步骤和创建相反。
Linux下磁盘管理的逻辑卷就总结完毕。
B. 【Linux命令】磁盘管理(逻辑卷与物理卷)
Linux和Windows都采用了MBR的磁盘管理方法,也就是先对一个硬盘进行分区,在对这个一般光盘进行格式化的方法;他们的区别是: Linux系统,是先进行磁盘分区,如果需要使用该分区,将其挂载到对应目录即可;而Windows则是自动将所有分区挂载好 传统的磁盘管理的缺点:不方便进行分区扩充、容易导致文件系统崩溃、不适用于作为生产环境的服务器、拷贝分区的时候要求强制卸载磁盘分区,分区转移时耗费的时间长;
LVM磁盘管理技术 是Linux环境下对磁盘管理的一种技术,是通过一个建立在硬盘和分区之上的逻辑层来提高磁盘分区的灵活性
物理卷(PV):就是真正的物理硬盘或物理分区
卷组(VG):是将多个物理硬盘整合到一起形成的逻辑卷组;也可以视作一块逻辑硬盘
逻辑卷(LV):卷组是一块逻辑硬盘,逻辑硬盘必须分区之后才能使用;逻辑卷可以视作是卷组的逻辑分区
物理扩展(PE):物理扩展是用来保存数据的最小单元
系统首先把物理硬盘合并为卷组;再通过卷组分区;将卷组(逻辑硬盘)分成逻辑分区(逻辑卷)进行使用;
把物理硬盘分成分区,也可以使用一整块的物理硬盘;把物理硬盘分区建立为物理卷(PV)也可以把整块物理硬盘都建立为物理卷;把刚刚划分的物理卷合为卷组(VG)卷组就已经可以动态的调整大小了,最后把卷组划分成逻辑卷,其中逻辑卷也是可以随时划分大小的
pvcreate命令在系统中一般用于创建物理卷;
语法结构
在使用这个命令的时候不要对存放Linux系统的盘符进行进行使用;我们在创建物理卷的时候都是对逻辑分区进行创建的;扩展分区(Extend)不能进行创建物理卷
pvdisplay 命令用于查看当前的分区情况
语法格式以及常用参数:
查看我们刚刚创建的物理卷
pvremove命令常用于删除对应的物理卷
语法结构:
删除我们刚刚创建的物理卷
vgcreate 命令的作用是将一个或多个物理卷整合成一个卷组;在创建卷组之前我们需要保证系统中有足够的除系统存放卷本身的物理卷(使用pvscan查看)需要注意的是,存放Linux的系统物理卷不能被划分到自定义卷组中、 常用参数:-s:设定PE(最小物理存储单元)的大小、-l:最大逻辑卷数量、-p:允许存在的最大物理卷数量
语法结构:
将我们刚刚创建物理卷添加到卷组之中
vgdisplay 这个命令可以用来查看我们创建的卷组; 常见的参数 -s 卷组信息以短格式输出 ;vgdisplay可以查看对应卷组的简短信息,所以相对于pvdisplay用处又大了那么一点
语法格式:
查看刚刚创建的卷组和某一个卷组的信息
同样:vgscan 命令也可以查看当前卷组使用情况的简短信息
vgremove 命令的作用是删除指定的卷组
语法结构:
删除我们刚刚创建的卷组
注意:当删除含有逻辑卷的卷组的时候系统会提示是否删除对应卷组和对应逻辑卷,只有在两个都输入:y之后系统才会删除对应的卷组
lvcreate 命令作用是在一个指定的卷组中创建一块逻辑卷,前提是要求有指定的卷组; 常用参数:-L:规定创建的逻辑卷大小(直接写大小就可以)、-l:通过PE划分逻辑卷的大小(后面接的数字是PE的个数)
语法结构:
在指定的卷组里创建逻辑卷
lvdisplay 命令可用于查看逻辑卷的详细信息,也可以用来查看指定逻辑卷的详细信息 参数:-m:查看对应逻辑卷的挂载信息
语法结构:
检查指定的逻辑卷,并查看指定逻辑卷的挂载信息:
管理逻辑卷大小的常用命令是lvextend 命令和 lvrece 命令分别表示逻辑卷大小的扩充和减少, 其中lvextend命令表示逻辑卷大小扩充,常用参数 -L(指的是扩充的具体大小)、-l(指的是扩充的LE块数量);lvextend命令表示逻辑卷大小的减小,常用参数-L(指的是减小的具体大小)、-l(指的是减小的LE块数量)
语法结构:
对我们指定的两个逻辑卷分别进行容量的增加和减少,并挂载对应的逻辑卷
C. 如何查看Linux挂载磁盘
查看Linux挂载磁盘的步骤如下:
1.成功登录到Linux的远程主机。
D. Linux文件系统-LVM逻辑卷
LVM(Logical Volume Manager)卷组管理器,通过对底层物理磁盘的封装,可以将多块物理磁盘组合成逻辑资源池,提供给上层应用使用(如文件系统). LVM的好处是,可以跨物理硬盘为文件系统提供容量,并且可以动态进行分区容量的调整,而不会损坏原有的文件系统.
物理磁盘 :物理存储介质,可以是整块物理存储或一个分区.
物理卷PV(physical volume) :LVM要使用物理磁盘,在物理磁盘的头部写入lvm标签头,就创建了一个PV,PV是组成VG的基本单元.
卷组VG(Volume Group) :VG相当于非LVM系统中的物理硬盘,一个卷组VG由一个或多个PV组成,形成一个存储资源池.
逻辑卷LV(logical volume) :LV相当于非LVM系统中的硬盘分区,LV建立在卷组VG之上,文件系统建立在LV之上.
物理块PE(physical Extent) :创建LV时可以分配的最小存储单元,大小可以指定,默认为4MB
如上是从物理磁盘到lvm逻辑卷的创建过程及映射关系,lv01、lv02被创建后,通过device-mapper映射为逻辑块设备(块设备路径/dev/vg01/lv01、/dev/vg01/lv02),供文件系统使用,通过mkfs.ext4 /dev/vg01/lv02可创建ext4文件系统.
元数据主要是两部分,PV header + metadata,位置一般是在PV的0~2048 sector中,从2048 sector开始是数据区域.
通过pvcreate创建pv时,会将pv header写入物理磁盘,位置一般是在磁盘的第二个sector(512B/sector),lvm扫描磁盘时,通过pv header来识别PV.
pv header主要信息包括,pv uuid、元数据位置和metadata位置.
pv header实例:
metadata记录的是vg和lv的配置信息,以ASCII码的方式写入metadata区域;vg和lv的每次配置变更,都会以追加的方式写入metadata区域,并打上时间戳,该区域写满后,新的变更记录会覆盖最早的一次记录. 进行vgscan时,猜测应该是通过读取最新一次的配置记录,进行激活.
vg配置信息,主要是包含的pv信息.
lv配置信息,主要是lv的起始位置和PE大小.
实例:
pvcreate /dev/vdb1
pvcreate /dev/vdb2
pvcreate /dev/vdb3
vgcreate /dev/vdb1 /dev/vdb2 /dev/vdb3
vgcreate wan /dev/vdb1 /dev/vdb2 /dev/vdb3
lvcreate -L 300M -n lv01 wan
将PV的前2048个sector通过dd拷贝出来,用cat查看如下.
假设我们有一块磁盘 /dev/sdb1 作为应用数据盘使用,以此为例创建lvm分区
先创建物理卷PV,命令: pvcreate /dev/sdb1
创建卷组VG,卷组命名为kylin,命令:vgcreate kylin /dev/sdb1
在VG中创建逻辑分区LV,命令:lvcreate -L 30G -n test kylin
创建逻辑分区后,进行格式化,然后便可以挂载使用.
mkfs.ext4 /dev/kylin/test
mount /dev/kylin/test /data
假设我们在上述基础上,又获得一块磁盘/dev/sdc1进行扩容,将磁盘容量增加到LV分区/dev/kylin/test中,具体操作如下.
先创建物理卷PV,命令: pvcreate /dev/sdc1
将/dev/sdc1添加进VG kylin,命令:vgextend kylin /dev/sdc1
增加LV分区容量,命令:lvextend -L +30G /dev/kylin/test
lvm卷组配置备份
lvm的配置信息默认在/etc/lvm/backup、/etc/lvm/archive/两个目录存在备份,当lvm元数据损坏,lvm卷组读取异常时,可通过备份文件进行恢复.
/etc/lvm/backup: 保留了当前配置的备份
/etc/lvm/archive/:保留了每次配置更新前的备份
实例演示
逻辑卷/dev/wan/lv01
在/dev/wan/lv01上创建文件系统
挂载并创建文件
覆盖/dev/vdb1、/dev/vdb2的lvm元数据,并重启系统,vg已不能识别
通过pvcreate命令修复pv header 和metadata数据.
激活逻辑卷
挂载/dev/wan/lv01成功,说明成功修复
E. Linux 磁盘 操作
1、查看实例上的数据盘信息。
运行以下命令:
运行结果如下所示。
依次运行以下命令,创建一个分区。
运行以下命令分区数据盘。
输入 p 查看数据盘的分区情况。
本示例中,数据盘没有分区。
输入 n 创建一个新分区。
输入 p 选择分区类型为主分区。
说明 创建一个单分区数据盘可以只创建主分区。如果要创建四个以上分区,您应该至少选择一次e(extended),创建至少一个扩展分区。
输入分区编号,按 回车键 。
本示例中,仅创建一个分区,直接按 回车键 ,采用默认值 1 。
输入第一个可用的扇区编号,按 回车键 。
本示例中,直接按回车键,采用 默认值2048 。
输入最后一个扇区编号,按 回车键 。注:也可用 +size{K,M,G} 确定分区大小
本示例中,仅创建一个分区,直接按 回车键 ,采用 默认值 。
输入 p 查看该数据盘的规划分区情况。
输入 w 开始分区,并在完成分区后退出。
运行结果如下所示。
查看新分区信息。
运行以下命令:
运行结果如下所示,如果出现 /dev/vdb1 的相关信息,表示新分区已创建完成。
步骤二:为分区创建文件系统
在新分区上创建一个文件系统。根据您的需求运行以下任一命令,创建文件系统。
创建一个 ext4 文件系统,运行以下命令。
创建一个xfs文件系统,运行以下命令。
本示例中,创建一个ext4文件系统。
步骤三:配置/etc/fstab文件并挂载分区
在/etc/fstab中写入新分区信息,启动开机自动挂载分区。
注意 由于释放云盘等操作可能会导致其他云盘的设备名变动,建议您在/etc/fstab中使用全局唯一标识符UUID来引用新分区。
备份etc/fstab文件。
运行以下命令:
在/etc/fstab里写入新分区信息。
root用户可以运行以下命令直接修改/etc/fstab文件。
说明
Ubuntu 12.04系统不支持barrier,您需要运行
命令。
如果要把数据盘单独挂载到某个文件夹,例如单独用来存放网页,则将命令中/mnt替换成所需的挂载点路径。
普通用户可以手动修改/etc/fstab文件。
运行以下命令查看新分区的UUID。
运行结果如下所示。
运行以下命令编辑/etc/fstab文件。
输入i进入编辑模式。
在/etc/fstab文件中写入新分区信息,UUID值请修改为前面步骤中的查询结果。
按Esc键,输入:wq,按回车键保存并退出。
查看/etc/fstab中的新分区信息。
运行以下命令:
运行结果如下所示。
挂载分区。
运行以下命令:
检查挂载结果。
运行以下命令:
运行结果如下所示,如果出现新建文件系统的信息,表示文件系统挂载成功。
F. Linux文件系统和逻辑卷管理命令(二)
根据前面介绍的分区命令就可以创建分区了,不过需要注意,我们要为某些特定挂载点设置合适的分区大小。CentOS 7 (参考 Red Hat Ent erprise Linux 7 安装手册)至少需要为 /boot 、 / 、 /home 、 swap 这四个挂载点配置分区。下面是这四个挂载点分区大小建议:
下面是可选的挂载点分区:
为各挂载目录创建好分区之后,就可以为其创建文件系统了。
在 Windows 环境下,格式化的操作相对简单。通常的操作步骤是:先打开资源管理器,接着在希望被执行格式化的盘符图标上右击,然后选择“格式化”,再按照提示操作即可。也可以选择“快速格式化”,但要求分区没有坏道。需要注意的是:对硬盘执行格式化操作时,用户需要拥有系统管理员权限(仅限于 Windows Vista 以及此后推出的作业系统)。在 Windows 环境中,除了可以使用图形化的操作界面执行格式化操作之外,也可以在命令提示字符中使用 Diskpart 指令 (仅限于 Windows 2000 及以后的作业系统,包含 Windows PE)进行操作。
在 Unix/Linux 环境下,通常使用命令工具执行格式化操作。需要注意的是:对硬盘执行格式化操作时,用户需要拥有超级用户权限。创建文件系统的常用命令如下:
并非所有文件系统的命令工具都已经默认安装了。要想知道某个文件系统的命令工具是否可用,可以使用 type 命令。
每个文件系统命令都有很多命令行选项,允许你定制如何在分区上创建文件系统。要查看所有可用的命令行选项,可用 man 命令来显示该文件系统命令的手册页面。所有的文件系统命令都允许通过不带选项的简单命令来创建一个默认的文件系统。
为分区创建了文件系统之后,下一步是将它挂载到虚拟目录下的某个挂载点,这样就可以将数据存储在新文件系统中了。你可以将新文件系统通过 mount 命令挂载到虚拟目录中需要额外空间的任何位置。
现在你可以在新分区中保存新文件和目录了! 这种挂载文件系统的方法只能临时挂载文件系统。当重启 Linux 系统时,文件系统并不会自动挂载。要强制 Linux 在启动时自动挂载新的文件系统,可以将其添加到 /etc/fstab 文件。
如果用标准分区在硬盘上创建了文件系统,为已有文件系统添加额外的空间多少是一种痛苦的体验。你只能在同一个物理硬盘的可用空间范围内调整分区大小。如果硬盘上没有地方了,你就必须弄一个更大的硬盘,然后手动将已有的文件系统移动到新的硬盘上。这时候就可以通过将另外一个硬盘上的分区加入已有文件系统,动态地添加存储空间。 Linux 逻辑卷管理器(logical volume manager, LVM)软件包正好可以用来做这个。它可以让你在无需重建整个文伍春好件系统的情况下,轻松地管理磁盘空间。
逻辑卷管理的核心在于如何处理安装在系统上的硬腔铅盘分区。在逻辑卷管理的世界里,硬盘称作 物理卷(physical volume, PV) 。每个物理卷都会映射到硬盘上特定的物理分区。多个物理卷集中在一起可以形成一个 卷组(volume group, VG) 。逻辑卷管理系统 将卷组视为一个物理硬盘 ,但事实上卷组可能是由分布在多个物理硬盘上的多个物理分区组成的。 卷组提供了一个创建逻辑分区的平台,而这些逻辑分区则包含了文件系统。 整个结构中的最后一层是逻辑卷(logical volume, LV) 。 逻辑卷为 Linux 提供了创建文件系统的分区环境,作用类森侍似于到目前为止我们一直在探讨的 Linux 中的物理硬盘分区。Linux 系统将逻辑卷视为物理分区。 每个逻辑卷可以被格式化成某种文件系统,然后挂载到虚拟目录中某个特定位置 。逻辑卷由 PE (physical extents,即物理区段)组成,PE 为硬盘可供指派给逻辑卷的最小单位(通常为4MB)。
注意,上图中的第三个物理硬盘有一个未使用的分区。通过逻辑卷管理,你随后可以轻松地将这个未使用分区分配到已有卷组:要么用它创建一个新的逻辑卷,要么在需要更多空间时用它来扩展已有的逻辑卷。 类似地,如果你给系统添加了一块硬盘,逻辑卷管理系统允许你将它添加到已有卷组,为某个已有的卷组创建更多空间,或是创建一个可用来挂载的新逻辑卷。这种扩展文件系统的方法要好用得多!
优点
比起正常的硬盘分区管理,LVM 更富于弹性:
这些优点使得 LVM 对服务器的管理非常有用,对于桌面系统管理的帮助则没有那么显着,你需要根据实际情况进行取舍。
缺点
Linux LVM 是由 Heinz Mauelshagen 开发的,于 1998年 发布到了 Linux 社区。它允许你在 Linux 上用简单的命令行命令管理一个完整的逻辑卷管理环境。 Linux LVM 有两个可用的版本。
大部分采用 2.6 或更高内核版本的现代 Linux 发行版都提供对 LVM2 的支持。除了标准的逻辑卷管理功能外, LVM2 还提供了另外一些好用的功能。
Linux LVM 包只提供了命令行程序来创建和管理逻辑卷管理系统中所有组件。有些 Linux 发行版则包含了命令行命令对应的图形化前端,但为了完全控制你的 LVM 环境,最好习惯直接使用这些命令。
此外,还可以使用以下命令来操作逻辑卷:
在手动增加或减小逻辑卷的大小时,要特别小心。逻辑卷中的文件系统需要手动修整来处理大小上的改变。大多数文件系统都包含了能够重新格式化文件系统的命令行程序,比如用于 ext2、 ext3 和 ext4 文件系统的 resize2fs 程序。
第一种方法:直接增大5G,写“+5G”
第二种方法:原来是10G,增大5G就是“15G”
动态扩容示例: