Linux网络技术主讲:邓志龙Email:jenod@163.com项目2使用LVM方式管理Linux项目背景:分区的大小一旦确定,通常就不再可以改变。熟悉Windows的你,每次安装Windows系统,是否总是“如临大敌”:Windows要需要C盘多少G空间?多少G的软件要装在D盘上?要下载多少G的电影到E?……可是,再精明的规划到最后也可能落空,一不留神就把某个分区塞满的事情时常发生,因此,你常要做到是把D盘装不下的游戏搬到E盘,或者把E盘看不完的电影扔到C盘来“平衡负载”,直到那个臭名昭著的蓝屏通知你,Windows崩溃了——一般不会让你等太久。在Linux系统中,如果用LVM2管理这些分区,你既可以把新硬盘直接添加到/home逻辑卷中,也可以调整/usr或者/tmp的大小,把节约出来的空间分配给/home,然后继续之前的工作。这就是LVM2的好处,赋予你的工作以弹性。不再预计未来究竟会使用多少空间,你只需知道当下要用多少空间,并为未来留下足以变通的可能性就可以了……项目分解:基本任务:(1)采用LVM方式安装Ubuntu系统;(2)创建新的卷(物理卷、卷组、逻辑卷)。拓展任务:(1)采用LVM方式安装Ubuntu系统(手动);(2)管理卷(扩展、减小、删除等操作)任务1采用LVM方式安装Ubuntu系统1.了解LVMLVM的一个作用就是可以把多个硬盘、U盘等不同存储设备当作一个大的存储设备使用,如图2.1所示给出了一个LVM结构示意图。LVM是建立在磁盘分区和文件系统之间的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个逻辑的盘卷,再在盘卷上来建立文件系统。在图2.1所示LVM结构示意图中,LVM通过由磁盘或者磁盘分区构成的卷组管理存储设备,而逻辑卷就类似于普通的磁盘分区,通过逻辑卷上建立文件系统就可以正常的挂载到Linux系统目录,另外,规划时还特意留出大量空闲空间做备用,/boot存放内核文件,不能采用LVM管理。LVM进一步的了解可以通过学习本项目后的相关知识部分或其他相关资源。2.采用LVM方式安装Ubuntu系统(向导)要能够使用LVM方式管理Linux,一种方式是安装时就采用LVM方式安装。插入安装/LiveDVD版的Ubuntu安装光盘,从光盘引导系统,进入系统安装,选择安装语言为中文简体,安装方式为“以文本方式安装”,依照提示一步一步进入安装过程中的磁盘分区界面,如图2.2所示。1)向导-使用整个磁盘2)向导-使用整个磁盘并配置LVM在回忆采用传统的“向导-使用整个磁盘”之后将继续进入我们的安装之旅。选择“向导-使用整个磁盘并配置LVM”,首先也是进入选择磁盘界面,系统只有一个磁盘,直接回车,如图所示。使用“向导-使用整个磁盘”安装UbuntuLinux系统,分区向导除了规划出Linux系统必须的两个主要分区:根分区与交换分区(Swap),还有一个分区将挂载到/boot目录,如图所示提高:1)选择最下一栏“#5逻辑分区”回车,进入图2.9所示界面,结果显示“#5逻辑分区”为LVM物理卷。2)向导规划的逻辑卷root挂载到根分区/,逻辑卷Swap_1挂载到交换分区(Swap),逻辑卷root与Swap_1属于卷组ubuntu,而卷组ubuntu包含物理卷/dev/sda5。3)由于引导分区不能采用LAM管理,分区向导规划出一个单独的主分区,其挂载点为/boot。4)如果还想改变分区方案,可以选择配置逻辑卷管理器。任务2创建新的卷(物理卷、卷组、逻辑卷)本任务在首先系统中添加一块新硬盘(SCSI接口),然后依顺序进行:创建LVM类型的分区→物理卷→卷组→逻辑卷→在逻辑卷上创建文件系统→挂载。1.安装LVM2如果安装系统是没有选择LVM方式安装,则要求安装LVM2管理包。dmsetup是一个Linux内核设备映射器,它作用是对设备进行映射,LVM2必须使用。student@ubuntu:~$sudoapt-getinstalllvm2正在读取软件包列表...完成正在分析软件包的依赖关系树读取状态信息...完成将会安装下列额外的软件包:dmsetup下列【新】软件包将被安装:dmsetuplvm2┆2.创建LVM类型的分区1)查看硬盘信息使用fdisk–l命令查看磁盘信息。显示已经有一块没有分区表的新硬盘/dev/sdb,容量为5G。student@ubuntu:~$sudofdisk-lDisk/dev/sda:8589MB,8589934592bytes//以前系统硬盘,已经分区。255heads,63sectors/track,1044cylindersUnits=cylindersof16065*512=8225280bytesDiskidentifier:0x000add03DeviceBootStartEndBlocksIdSystem/dev/sda1*1993797624183Linux/dev/sda29941044409657+5Extended/dev/sda5994104440962682Linuxswap/SolarisDisk/dev/sdb:5368MB,5368709120bytes//新添加的硬盘,还没有分区表255heads,63sectors/track,652cylindersUnits=cylindersof16065*512=8225280bytesDiskidentifier:0x00000000Disk/dev/sdbdoesn'tcontainavalidpartitiontable2)创建LVM类型的分区LVM分区的磁盘类型最好为LVM分区的类型(类型ID为8e),可以使用fdisk命令创建LVM类型的分区,分区过程如下。student@ubuntu:~$sudofdisk/dev/sdb┆Warning:invalidflag0x0000ofpartitiontable4willbecorrectedbyw(rite)Command(mforhelp):n//创建新分区Commandactioneextendedpprimarypartition(1-4)p//选择创建主分区Partitionnumber(1-4):1//创建主分区号1Firstcylinder(1-652,default1):Usingdefaultvalue1Lastcylinderor+sizeor+sizeMor+sizeK(1-652,default652):+3G//主分区大小Command(mforhelp):n//创建新分区Commandactioneextendedpprimarypartition(1-4)e//选择创建扩展分区Partitionnumber(1-4):2//创建扩展分区号2Firstcylinder(367-652,default367):Usingdefaultvalue367Lastcylinderor+sizeor+sizeMor+sizeK(367-652,default652)://使用全部剩余空间Usingdefaultvalue652Command(mforhelp):n//创建新分区Commandactionllogical(5orover)pprimarypartition(1-4)l//选择创建逻辑分区Firstcylinder(367-652,default367):Usingdefaultvalue367Lastcylinderor+sizeor+sizeMor+sizeK(367-652,default652)://使用全部剩余空间Usingdefaultvalue6522)创建LVM类型的分区以上创建了一个主分区,大小为3G,和一个基于扩展分区的逻辑分区并使用了所有磁盘剩余空间作为其大小(2G),当然,在实际环境中每个分区建议使用40G左右的大小。另外,磁盘划分为主分区还是逻辑分区对LVM来说无关紧要。Command(mforhelp):p//查看结果Disk/dev/sdb:5368MB,5368709120bytes255heads,63sectors/track,652cylindersUnits=cylindersof16065*512=8225280bytesDiskidentifier:0xf451066fDeviceBootStartEndBlocksIdSystem/dev/sdb113662939863+83Linux/dev/sdb236765222972955Extended/dev/sdb53676522297263+83LinuxCommand(mforhelp):t//以下更改主分区类型Partitionnumber(1-5):1Hexcode(typeLtolistcodes):8eChangedsystemtypeofpartition1to8e(LinuxLVM)Command(mforhelp):t//更改逻辑分区类型Partitionnumber(1-5):5Hexcode(typeLtolistcodes):8eChangedsystemtypeofpartition5to8e(LinuxLVM)Command(mforhelp):p//查看结果Disk/dev/sdb:5368MB,5368709120bytes255heads,63sectors/track,652cylindersUnits=cylindersof16065*512=8225280bytesDiskidentifier:0xf451066fDeviceBootStartEndBlocksIdSystem/dev/sdb113662939863+8eLinuxLVM/dev/sdb236765222972955Extended/dev/sdb53676522297263+8eLinuxLVMCommand(mforhelp):w//保存Thepartitiontablehasbeenaltered!Callingioctl()tore-readpartitiontable.Syncingdisks.3.创建物理卷使用pvcraeate命令将分区分配给物理卷。1)在刚刚创建的两个LVM分区上创建物理卷。pvcreate命令也可以一次对多个分区创建物理卷。student@ubuntu:~$sudopvcreate/dev/sdb1Physicalvolume/dev/sdb1successfullycreatedstudent@ubuntu:~$sudopvcreate/dev/sdb5Physicalvolume/dev/sdb5successfullycreated2)创建的物理卷之后可以使用pvscan命令查看物理卷对应的设备名称。pvscan命令将扫描系统存在的物理卷,并显示器设备名、容量。student@ubuntu:~$sudopvscanPV/dev/sdb1lvm2[2.80GB]PV/dev/sdb5lvm2[2.19GB]Total:2[4.99GB]/inuse:0[0]/innoVG:2[4.99GB]3)使用pvdisplay命令查看新创建的物理卷更详细信息。Pvdisplay命令将显示物理卷的状态和大小,包括物理卷名、所属的卷组名、PE值、容量等。student@ubuntu:~$sudopvdisplay---NEWPhysicalvolume---PVName/dev/sdb1VGNamePVSize2.80GBAllocatableNOPESize(KByte)0TotalPE0FreePE0AllocatedPE0PVUUIDZelrWm-8LR9-F9kR-EU54-10uo-wpfF-kIQxim---NEWPhysicalvolume---PVName/dev/sdb5VGNamePVSize2.19GBAllocatableNOPESize(KByte)