磁盘阵列划分时LVM的概念和操作

2016-09-27 18:54:00 作者:佚名 分类 : 比特网

  一、前言

  磁盘阵列,简单的说就是将多个硬盘通过一定的接口和协议连接起来,然后通过控制器或者磁盘管理设备来统一管理的存储设备。下图是磁盘阵列的实物图。

磁盘阵列划分时LVM的概念和操作

  磁阵管理器可以设置存储的RAID类型,可以划分LUN,可以把LUN映射到服务器上,前提是在光纤交换机里划分ZONE来将主机的HBA卡跟磁阵的HBA绑定,光纤线路图可参见4.2节。

  这里重点讲LVM的概念和操作,看完这篇文档,你会了解LVM是什么,里面有哪些概念,如何把LUN划分到LV挂载到服务器上,双机切换是怎么对存储进行处理的。至于存储如何跟服务器连上,如何做RAID策略,如何划分LUN,这里不涉及。

  二、概念

  2.1 LVM

  LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(Logical Volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

磁盘阵列划分时LVM的概念和操作

  2.2 LUN

  LUN的全称是Logical Unit Number,也就是逻辑单元号。我们知道SCSI总线上可挂接的设备数量是有限的,一般为6个或者15个,我们可以用target ID(也有称为SCSI ID的)来描述这些设备,设备只要一加入系统,就有一个代号,我们在区别设备的时候,只要说几号几号就ok了。

  而实际上我们需要用来描述的对象,是远远超过该数字的,于是我们引进了lun的概念,也就是说lun id的作用就是扩充了target id。每个target下都可以有多个lun device,我们通常简称lun device为lun,这样就可以说每个设备的描述就有原来的target X变成target x lun y了,那么显而易见的,我们描述设备的能力增强了。就好比,以前你给别人邮寄东西,写地址的时候,可以写:

  xx市人民大街54号 xxx(收)

  但是自从高楼大厦越来越多,你不得不这么写:

  xx市人民大街54号xx大厦518室 xxx (收)

  所以我们可以总结一下,LUN就是我们为了使用和描述更多设备及对象而引进的一个方法而已,一点也没什么特别的地方。

  LUN ID不等于某个设备,只是个号码而已,不代表任何实体属性,在我们的实际环境里,我们碰到的LUN可能是磁盘空间,可能是磁带机,或者是media changer等等。

  LUN的神秘之处(相对于一些新手来说)在于,它很多时候不是什么可见的实体,而是一些虚拟的对象。比如一个阵列柜,主机那边看作是一个target device,那为了某些特殊需要,我们要将磁盘阵列柜的磁盘空间划分成若干个小的单元给主机来用,于是就产生了一些什么逻辑驱动器的说法,也就是比target device级别更低的逻辑对象,我们习惯于把这些更小的磁盘资源称之为LUN0,LUN1,LUN2……什么的。而操作系统的机制使然,操作系统识别的最小存储对象级别就是LUN Device,这是一个逻辑对象,所以很多时候被称之为Logical Device。

  2.3 PV

  物理卷physical volume ,典型的物理卷是硬盘分区,但也可以是整个硬盘或已创建的Software RAID 卷。

  2.4 VG

  卷组volume group ,卷组是LVM中最高抽象层,是由一个或多个物理卷所组成的存储器池。

  2.5 LV

  逻辑卷logical volume ,逻辑卷相当于非LVM系统中的分区,它在卷组上建立,是一个标准的块设备,可以在其上建立文件系统。

  3 磁阵操作实战:用LVM划分PV/VG/LV

  3.1 修改磁盘的分区格式为lvm格式8e

  查看硬盘空间,并创建分区(按以下命令逐行执行)

  fdisk -l fdisk /dev/sdb (如果每个lun一个分区,就可以不新建分区,只是修改分区格式) p 查看当前分区情况 n 新建分区 p 主分区 2 建第2个主分区(根据实际情况) +20G 设置分区大小 t 设置分区格式 8e 设置为linux lvm格式 w 保存设置 q 退出分区

  3.2 建立PV

  为把一个磁盘或分区作为PV,首先应使用 pvcreate 对其初始化,如对IDE硬盘/dev/hdb,

  1) 使用整个磁盘,

  # pvcreate /dev/hdb

  这将在磁盘上建立VG的描述符

  2) 使用磁盘分区,如/dev/hdb1。

  使用fdisk 的t 命令把/dev/hda1的分区类型设为0x8e,然后运行:

  # pvcreate /dev/hdb1

  这将在分区/dev/hda1上建立VG的描述符。

  PV初始化命令pvcreate的一般用法为:

  pvcreate PV1 [ PV2 ... ] 它的参数可以是整个磁盘、分区,也可以是一loop设备。

  3.3 建立VG

  在使用pvcreate 建立了PV后,可以用vgcreate 建立卷组,如有PV1、PV2分别是/dev/hda1与/dev/hdb1,使用

  # vgcreate testvg /dev/hda1 /dev/hdb1

  将建立一个名为testvg的卷组,它由两个PV:/dev/hda1与/dev/hdb1组成。vgcreate的一般用法为:

  # vgcreate [options] VG_name PV1 [PV2 ...]

  其中的可选项包括设置VG最大支持的LV数、PE大小(缺省为4MB)等。

  注意:当使用devfs系统时,应使用设备的全名而不能是Symbol Link,如对上例应为:

  # vgcreate testvg /dev/ide/host0/bus0/target0/lun0/part1\ /dev/ide/host0/bus0/target1/lun0/part1

  3.4 激活VG

  在被激活之前,VG与LV是无法访问的,这时可用命令:

  # vgchange -a y testvg

  激活所要使用的卷组。当不再使用VG时,可用

  # vgchange -a n testvg

  使之不再可用。

  vgchange可用来设置VG的一些参数,如是否可用( -a [y|n]选项)、支持最大逻辑卷数等。

  3.5 移除VG

  在移除一卷组前应确认卷组中不再有逻辑卷,首先休眠卷组:

  # vgchange -a n testvg

  然后可用vgremove移除该卷组:

  # vgremove testvg

  3.6 为VG增加新PV

  当卷组空间不足时,可以加入新的物理卷来扩大容量,这时可用命令vgextend,如

  # vgextend testvg /dev/hdc1 其中/dev/hdc1是新的PV,当然在这之前,它应使用pvcreate初始化。

  3.7 从VG移除PV

  在移除PV之前,应确认该PV没用被LV使用,这可用命令pvdisplay查看,如:

  # pvdisplay /dev/hda1 --- Physical volume --- PV Name /dev/hda1 VG Name testvg PV Size 1.95 GB / NOT usable 4 MB [LVM: 122 KB] PV# 1 PV Status available Allocatable yes (but full) Cur LV 1 PE Size (KByte) 4096 Total PE 499 Free PE 0 Allocated PE 499 PV UUID Sd44tK-9IRw-SrMC-MOkn-76iP-iftz-OVSen7

  如这个PV仍在被使用,则应把数据传移到其它PV上。在确认它未被使用后,可用命令vgreduce把它从VG中删除,如:

  # vgreduce testvg /dev/hda1

  3.8 创建LV

  在创建逻辑卷前,应决定LV使用哪些PV,这可用命令vgdisplay与pvdisplay查看当前卷组与PV的使用情况。在已有的卷组上创建逻辑卷使用命令lvcreate,如:

  # lvcreate -L1500 -ntestlv testvg

  将在卷组testvg上建立一个1500MB的线性LV,其命名为testlv,对应的块设备为/dev/testvg/testlv。

  # lvcreate -i2 -I4 -l100 -nanothertestlv testvg

  将在卷组testvg上建立名为anothertestlv的LV,其大小为100LE,采用交错方式存放,交错值为2,块大小为4KB。

  如果需要LV使用整个VG,可首先用vgdisplay 查找 Total PE 值,然后在运行lvcreate时指定,如:

  # vgdisplay testvg | grep "Total PE" Total PE 10230 # lvcreate -l 10230 testvg -n mylv

  将使用卷组testvg的全部空间创建逻辑卷mylv。

  在创建逻辑卷后,就可在其上创建文件系统并使用它。

  命令lvcreate的常用方法:

  lvcreate [options] -n 逻辑卷名 卷组名 [PV1 ... ] 其中的常用可选项有: "-i Stripes :采用交错(striped)方式创建LV,其中Stripes指卷组中PV的数量。-I Stripe_size :采用交错方式时采用的块大小(单位为KB),Stripe_size必须为2的指数:2N ,N=2,3...9。-l LEs :指定LV的逻辑块数。-L size :指定LV的大小,其后可以用K、M、G表示KB、MB、GB。-s :创建一已存在LV的snapshot卷。-n name :为LV指定名称。

  3.9 删除LV

  为删除一个逻辑卷,必须首先从系统卸载其上的文件系统,然后可用lvremove删除,如:

  # umount /dev/testvg/testlv # lvremove /dev/testvg/testlv lvremove -- do you really want to remove "/dev/testvg/testlv"? [y/n]: y lvremove -- doing automatic backup of volume group "testvg" lvremove -- logical volume "/dev/testvg/testlv" successfully removed

  3.10 LVM操作全流程演示

  在本节中,将在3块SCSI硬盘:/dev/sda,/dev/sdb,/dev/sdc上按步建立LVM。

  3.10.1 修改分区格式为lvm分区

  fdisk /dev/sda (如果每个lun一个分区,就可以不新建分区,只是修改分区格式) t 设置分区格式 8e 设置为linux lvm格式 w 保存设置 q 退出分区

  3.10.2 准备分区

  首先要做的是初始化硬盘,建立PV,这将会删除硬盘上的原有数据。在此,用整个硬盘为PV:

  # pvcreate /dev/sda # pvcreate /dev/sdb # pvcreate /dev/sdc pvcreate在每个硬盘的起始端建立卷组描述区( volume group descriptor area, VGDA)。

  3.10.3 创建卷组

  利用上面三个PV建立卷组:

  # vgcreate test_vg /dev/sda /dev/sdb /dev/sdc/ 然后可用vgdisplay 查看/验证卷组的信息:# vgdisplay --- Volume Group --- VG Name test_vg VG Access read/write VG Status available/resizable VG # 1 MAX LV 256 Cur LV 0 Open LV 0 MAX LV Size 255.99 GB Max PV 256 Cur PV 3 Act PV 3 VG Size 1.45 GB PE Size 4 MB Total PE 372 Alloc PE / Size 0 / 0 Free PE / Size 372/ 1.45 GB VG UUID nP2PY5-5TOS-hLx0-FDu0-2a6N-f37x-0BME0Y

  其中最重要的前三条要正确,且VG size是以上三个硬盘容量之和。

  3.10.4 建立LV

  在确定卷组test_vg正确后,就可在其上创建LV。LV的大小可在VG大小范围内任意选择,如同在硬盘上分区。

  建立线性方式LV

  在test_vg上建立一个大小为1GB的线性方式LV:

  # lvcreate –L 1G –n test_lv test_vg lvcreate -- doing automatic backup of "test_vg" lvcreate -- logical volume "/dev/test_vg/test_lv" successfully created

  建立交错方式LV

  在test_vg上建立一个大小为1GB的交错方式LV,交错参数为4KB:

  # lvcreate -i3 -I4 -L1G -ntest_lv test_vg lvcreate -- rounding 1048576 KB to stripe boundary size 1056768 KB / 258 PE lvcreate -- doing automatic backup of "test_vg" lvcreate -- logical volume "/dev/test_vg/test_lv" successfully created

  注意:如果使用 -i2参数,则LV将仅使用test_vg中的两块硬盘。

  3.10.5 建立文件系统

  在LV test_lv创建后,就可在其上建立文件系统,

  如,ext2/ext3系统: # mke2fs /dev/test_vg/test_lv 如,reiserfs: #mkreiserfs /dev/test_vg/test_lv

  3.10.6 测试文件系统

  安装LV:

  # mount /dev/test_vg/test_lv /mnt # df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 1311552 628824 616104 51% / /dev/test_vg/test_lv 1040132 20 987276 0% /mnt

  则可以通过/mnt访问LV。

  四、磁阵操作流程图和实物图

  4.1 磁阵映射到服务器的流程图

  每个笼子有15块磁盘,分出14块盘做raid10类的RAID Group,剩下一块磁盘做Hot Spare盘,当RAID Group中的某块磁盘坏掉的时候,Hot Spare盘就会自动顶替坏盘,Hot Spare盘是对所有RAID Group都可用的。

磁盘阵列划分时LVM的概念和操作

  RAID 10(RAIS0 + RAID1)的示意图:

磁盘阵列划分时LVM的概念和操作

  4.2 磁阵与服务器之间的光纤线路图

磁盘阵列划分时LVM的概念和操作

  4.3 刀片机框

  这个刀片机框的后面,刀片机有自己的管理器,而且有刀片机的光纤交换机,管理器和光纤交换机都有主备。

磁盘阵列划分时LVM的概念和操作

  4.4 光纤插线板

  刀片机,PC服务器器,光纤交换机,磁阵都是连在光纤插线板上的,各部件的连接是在光纤插线板上进行的:

磁盘阵列划分时LVM的概念和操作

  4.5 光纤交换机

  上下是主备光纤交换机,在光纤交换机里划分ZONE来将主机的HBA卡跟磁阵的HBA绑定,这样在磁阵的控制器里就可以看到主机了

磁盘阵列划分时LVM的概念和操作

  4.6 磁阵

  磁阵有自己的管理器,可以用笔记本连上,操作磁阵,做RAID策略和划分LUN。

磁盘阵列划分时LVM的概念和操作

  磁阵管理器大图

磁盘阵列划分时LVM的概念和操作

  4.7 磁阵双机管理相关脚本

  以MDSP的双机脚本VGLVAgent.rar和出差期间的FS双机脚本vg.rar为例。从脚本来看双机切换对存储处理的整个主体流程为:

  1)主机文件系统解挂载

  umount /mdsp/mi

  PS:此操作是main.cf文件里直接调用命令来执行,在上面的脚本里没有。

  2)主机VG去激活

  lvm vgchange -a n ${vgName} > /dev/null 2>&1

  PS:如果LV绑定了裸设备需要用raw命令解除绑定

  3)备机VG激活

  lvm vgchange -a y ${vgName} > /dev/null 2>&1

  PS:如果VG的状态不是exported状态的,则需要导入VG

  lvm vgimport ${vgName} > /dev/null 2>&1

  4)备机LV激活

  lvm lvchange -a y /dev/${vgName}/${lvName} >/dev/null 2>&1

  5)备机文件系统挂载

  mount /dev/test_vg/test_lv /mdsp/mi

  从脚本来看,双机操作的对象是VG和LV,不涉及LUN。

最近更新
科普

科普图集
带着朋友和机器人上月亮散步

带着朋友和机器人上月亮散步>>详情

邮件订阅

软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
网络周刊
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
存储周刊
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
安全周刊
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家网
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。