LVM简单使用

简介:
OS:ubuntu server 8.04.1
软件:LVS2
1。安装LVM:
apt-get install lvm-common lvm2 evms
只有安装了evms 才会有 vgdisplay、pvcreate这些命令~
2。新加一块硬盘`,如果用虚拟机的话就好说了,没有安装虚拟机的就用loopback做测试吧,我的是虚拟机,所以我就讲我的测试了。
3。格式化硬盘~ 
#fdisk /dev/sdb
回车,输入n(创建一个新分区),回车,输入p(创建一个主分区),回车,输入1(主分区号),回车,回车(输入分区起始地址,默认1),回车(输入分区结束地址,默认是整块硬盘的最后一数据块),输入t(修改分区类型,默认是83),回车,输入8e(Linux LVM分区类型),输入w(保存并退出),这样会创建/dev/sdb1分区,完全占用了硬盘/dev/hda的空间。
4.创建物理卷(简称PV)
#pvcreate /dev/sdb1
可以使用pvdisplay命令查看物理卷的详细信息。执行pvcreate命令后会向硬盘中写如pv信息,同时也会在/etc/lvm/backup目录下产生同样的pv信息文件。
5。创建卷组(简称VG)
#vgcreate www /dev/sdb1
ps:创建卷组时如果使用默认的参数,最后在此基础上创建逻辑卷时会有大小限制,默认最大不能超过256G,如果在生产系统中规划逻辑卷大小会超过256G时,那么在创建卷组时就要使用参数-s并指定一个分为大小,如10G,这样创建的卷组就可以容纳2T的逻辑卷了.命令如下
#vgcreate -s 10G /dev/sdb1
创建卷组时要为卷组指定一个名字,如该卷组会用来存储web数据,就可以命名为www,也会在/etc/lvm/backup目录下的对应文件中写入卷组信息。有兴趣的读者可以打开看看,都是文本格式的文件。卷组创建好后可以使用命令vgdisplay命令查看其详细信息。
6.创建逻辑卷(简称LV)
#lvcreate -L5G -nwww www
#lvcreate -L5G -njpg www
这里的-L参数后跟的是该逻辑卷的大小,它们之间没有空格,-n参数后跟的是该逻辑卷的名字,最后是卷组的名字。
创建好后可以使用命令lvdisplay命令查看其详细信息,执行lvcreate命令会向硬盘中写入逻辑卷信息,对应的/etc/lvm/backup下的文件也会得到更新。
7.给逻辑卷上创建文件系统
#mkfs.ext3 -j /dev/www/www
#mkfs.ext3 -j /dev/www/jpg
8.创建挂载点与挂载逻辑卷
#cd /var
#mkdir www jpg
#mount /dev/www/www /var/www
#mount /dev/www/jpg /var/jpg
如果想开机自动挂载,修改/etc/fstab
加入
/dev/www/www /var/www  ext3  defaults 1 2
/dev/www/www /var/jpg  ext3  defaults 1 2
执行 mount 即可以看到挂载信息,若没有说明挂载失败~
9。逻辑卷LV增大减小
  ∴增大
#lvextend -L+2G /dev/www/www
#lvdisplay
这时看到逻辑卷大小已经变大了,但这并不意味着文件系统就随着一起变大了,此时mount上后,用df命令查看还是增大前的大小,这时需要用到另一个工具ext2resize,安装后有2个命令ext2resize和ext2online,ext2resize命令必须要在卸载文件系统的情况下才能使用,ext2online可以实现在线重设文件系统大小.命令如下
#ext2online /dev/oracle/oracle 10G
#df -lh
这时就能看到文件系统变为10G了,与逻辑卷大小一致了。使用ext2online的一个好处是,如果你在该逻辑卷上有正在运行的程序,不能终止服务,但空间快用光了,这时可以透明地增加其大小,不影响服务。
  ∴减小
#umount /oracle
#ext2resize /dev/oracle/oracle 10G
#lvreduce -L-12G /dev/oracle/oracle
#mount /dev/oracle/oracle /oracle
#df -h
注意:减小LV可能会造成数据丢失,所以先要做一次全备份,然后卸载掉文件系统,再进行操作。
10。硬盘替换~没有测试,转别人的。
以往如果硬盘坏掉,意味着数据丢失,于是人们发明了RAID技术,LVM本身不具备数据冗余功能,但它可以建立的RADI技术之上,即先用几块硬盘组成RAID阵列,再在阵列上进行分区,然后在其上建立逻辑卷,如果是这种情况,其中一块硬盘坏掉,如果是RAID5,那么可以直接拔掉坏硬盘,插一块好的即可。在使用LV的情况下,可以不用重启系统将一块硬盘中的数据转移到另一块上,实际上只需要一个命令pvmove就可以了。这里以移动/dev/oracle/oracle上的数据到/dev/src/src为例进行说明。
首先在/oracle上创建1个文件
#echo 1111>/oracle/1.txt
将第二块硬盘加入同一卷组,这里假设将/dev/hdb加入到卷组oracle中
#lvremove src
#vgremove src
这两个命令是将卷组src占用的pv腾出来。
#vgextend  oracle /dev/hdb1
将/dev/hdb1分区加入卷组oracle,这时可以移动分区了
#pvmove /dev/hda1
这样将原来的/dev/hda1是的数据全部转移到新的分区/dev/hdb1上了,现在可以将/dev/hda1从卷组oracle中移除。
#vgreduce oracle /dev/hda1
重新挂载
#mount /dev/oracle/oracle /oracle
查看前面创建的文件1.txt是否还在
#ls /oracle
可以看到文件还在,说明移动成功,这样也就完成了硬盘替换。可以看出替换硬盘没有重启系统,实现了在线替换
11。将硬盘转移到另一台计算机~
在使用普通分区的情况下,将硬盘挂接到其他机器上非常简单,拔下来插上去即可使用,在使用了LVM的情况下,要稍微多一点事情,因为LV的结构是同时保存在硬盘中也保存在/etc/lvm/backup下,在将硬盘移动前,要将这里面的信息删除,这是通过LVM附带的一个命令vgexport实现的,到了另一台机器上后,要创建这个信息,是通过vgimport来实现的,下面以/dev/hda为例进行说明。
首先在机器1上:
#vgchange -a n oracle
这条命令是将卷组oracle设为不可用状态
#vgexport oracle
注意这里不要理解为导出,实际上这个命令是从源系统中注销卷组。
在机器2上:
#vgimport oracle /dev/hda1
在机器2上注册卷组oracle
#vgchange -a y oracle
激活卷组oracle,这样硬盘就从一台机器移动到另一台机器了。
注意:如果在你的发行版中运行vgimport命令没有在/etc/lvm/backup目录下创建LV信息备份文件,需要手动运行vgcfgbackup命令来备份。


本文转自Deidara 51CTO博客,原文链接:http://blog.51cto.com/deidara/102220,如需转载请自行联系原作者

相关文章
|
1天前
|
云安全 人工智能 自然语言处理
|
6天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
314 116
|
8天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
613 53
Meta SAM3开源:让图像分割,听懂你的话
|
21天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
5天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
|
4天前
|
弹性计算 人工智能 Cloud Native
阿里云无门槛和有门槛优惠券解析:学生券,满减券,补贴券等优惠券领取与使用介绍
为了回馈用户与助力更多用户节省上云成本,阿里云会经常推出各种优惠券相关的活动,包括无门槛优惠券和有门槛优惠券。本文将详细介绍阿里云无门槛优惠券的领取与使用方式,同时也会概述几种常见的有门槛优惠券,帮助用户更好地利用这些优惠,降低云服务的成本。
270 132
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
AgentEvolver:让智能体系统学会「自我进化」
AgentEvolver 是一个自进化智能体系统,通过自我任务生成、经验导航与反思归因三大机制,推动AI从“被动执行”迈向“主动学习”。它显著提升强化学习效率,在更少参数下实现更强性能,助力智能体持续自我迭代。开源地址:https://github.com/modelscope/AgentEvolver
423 29
|
15天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
728 224

热门文章

最新文章