免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1316 | 回复: 0
打印 上一主题 下一主题

LVM2+ReiserFS使用小记(转载) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-02-20 13:14 |只看该作者 |倒序浏览
注:LVM现在有LVM1,LVM2两种版本,本文使用的是LVM2
 
什么是 LVM ? (Logical Volume Manager(逻辑卷管理))
LVM为计算机提供了更高层次的磁盘存储。
它使系统管理员可以更方便的为应用与用户分配存储空间。
在LVM管理下的存储卷可以按需要随时改变大小与移除
(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,
允许管理员用更直观的名称(如"sales'、'development')代替物理磁盘名
(如'sda'、'sdb')来标识存储卷。
        简单的说就是LVM管理介于物理介质(hda,md,loop)和文件系统(ReiserFS)之间
        使用LVM可以灵活的管理分区,在需要时,方便的增加或减小分区的大小
        不用重新"格式化",甚至不用重新启动系统,这对于服务器系统来说很实用。
        对于个人用户也是分区管理的绝佳选择,例如用几十G的空间来装linux
        分区是很头疼的,简单的分成 "/","SWAP" 太过草率,也不利于管理,而分出/usr
        /var /opt .... 对于每个分区大小要评估的准确,不然以后使用中出现
        空间不够的情况,可能就需要转移数据,重新分区,很麻烦。
        而使用LVM管理,就容易多了,可以先按照当前需要分配空间,当不够用的时候再增加
        而这一切只是简单的几条命令就可以完成,甚至不用重新启动就可以使用扩展后的空间了。
  使用LVM2需要三件事:
           1. 安装device-mapper库
           2. 安装lvm2 tools
           3. 在内核中支持device-mapper
        注意:以下方法仅适用于2.6.x内核,使用udev或devps管理设备文件。
        2.4.x内核请详细查看device-mapper的INSTALL文件。
        首先下载device-mapper库以及lvm2 tools:
        
http://sources.redhat.com/lvm2/
这里会得到lvm2相关资源信息
        
ftp://sources.redhat.com/pub/dm/
这里下载device-mapper库
        
ftp://sources.redhat.com/pub/lvm2/
这里下载lvm2 tools
        我使用的版本是:LVM2.0-stable.tgz  device-mapper-stable.tgz
安装device-mapper库,lvm2 tools :
        device-mapper-stable.tgz使用如下命令安装:
      tar zxvf device-mapper-stable.tgz &&
        cd device-mapper.1.00.21/  &&
        ./configure && make && make install
        安装好device-mapper后安装lvm2.0-stable.tgz :
        tar zxvf LVM2.0-stable.tgz &&
        cd LVM2.2.00.33 &&
        ./configure && make install
内核中支持device-mapper :
        就是这里,害我编译内核十几次,我使用的是2.6.10-mm3支持ReiserFS 4.0的内核
      
          代码:
       
       
           Device Drivers  --->
               
  • Multiple devices driver support (RAID and LVM) ---->
                                 Device mapper support
                                   Crypt target support
                                   Snapshot target (EXPERIMENTAL)               
                                   Mirror target (EXPERIMENTAL)
                                   Zero target (EXPERIMENTAL)
           
            只是支持了Device mapper,没有选择其他的特性。
            编译安装好device-mapper lvm-tools 后,使用pvcreate,vgcreate成功的创建了
            物理卷(PV),卷组(VG),当使用lvcreate创建逻辑卷(LV)时,出现了"segment fault"
            首先怀疑是因为gcc的CFLAGS,CXXFLAGS(优化参数)造成的,于是unset CFLAGS CXXFLAGS
            重新编译device-mapper lvm2,仍然出现错误。
            难道是内核错误?重新编译内核......
            将Device mapper support 下面的全部选择,编译进核心,仍然错误。。。。
            编译内核去掉CFLAGS,CXXFLAGS再编译,还是错误。。。。 莫非是整个环境问题?
            换到未优化的lfs中,编译。。安装。。。。错误。。。

            不甘心,换到Mandrake 使用标准2.6.10内核,另一个.config编译,安装。。
            竟然成功了!?把这个内核作为两个lfs的内核启动,竟然都正常了!
            把成功的.config  拿到2.6.10-mm3中,编译。。。。安装。。。又出错了。。
            难道只有在MDK环境编译出来的才可用?
            不应该,没道理。  内核版本问题??
            mv过来标准的2.6.10内核,编译。。。安装。。。。成功了!!
            faint...竟然是2.6.10-mm3内核的问题。。。lvm+ReiserFS 4.0 是不可以了

            所以这里建议最好使用标准的内核,不容易出问题。。。。。。。
            最终我只选择了  Device mapper support  如果希望使用其他特性
            比如pvmove 就要选择Mirror target的支持. 这些特性请查看相关文档.

            编译好内核,udev/devps就应该会根据/proc/misc中的"Num device-mapper"
            在/dev/下 建立mapper目录,并且在目录中建立control这个字符设备。
            其设备号由Num决定,如:我的/proc/misc中是:63 device-mapper
            则control应该为:
            crw-------  1 root root 10, 63 2005-02-10 09:22 /dev/mapper/control
            如果你没有这个control就需要手动建立一个:
            [root@NEWLFS ~]#cat /proc/misc | grep device-mapper | awk '{print $1}'
            得到control的设备号,我的是63.
            [root@NEWLFS ~]#mkdir /dev/mapper
            [root@NEWLFS ~]#mknod /dev/mapper/control c 10 设备号
            基本使用udev/devps管理设备,都会自动建立好这些的。
            现在已经编译好了内核,安装好了device-mapper lvm2,一切准备就绪,开始动工

            先说一下几个需要知道的概念:
            来看看LVM的组成:

              代码:
           
           
              hda1   hdc1      (PV:s on partitions or whole disks)
              /                                         
             /                                     
           diskvg        (VG)                           
           /  |                                     
          /   |                                                                    
      usrlv rootlv varlv (LV:s)
        |      |     |                                                             
     ext2  reiserfs  xfs (filesystems)
           
    PV (Physical Volume物理卷):
            物理卷可以是整个硬盘(hda),也可以是某个分区(hda1),md(software raid),loop设备....
    VG (Volume Group 卷组):
            卷组是LVM中最高抽象层,是由一个或多个物理卷所组成的存储器池。
            从图中可以看出,卷组是由一个或几个物理卷组成,然后分支成若干个LV.
    LV (Logical Volume 逻辑卷):
            逻辑卷相当于非LVM系统中的分区,它在卷组上建立
            是一个标准的块设备,可以在其上建立文件系统。
              代码:
           
           
              
    +-- Volume Group --------------------------------+
    |                                                |
    |    +----------------------------------------+    |
    | PV | PE |  PE | PE | PE | PE | PE | PE | PE |    |
    |    +----------------------------------------+    |
    |      .            .            .          .              |
    |      .          .            .        .            |
    |    +----------------------------------------+    |
    | LV | LE |  LE | LE | LE | LE | LE | LE | LE |    |
    |    +----------------------------------------+    |
    |            .          .        .           .     |
    |            .            .        .           .     |
    |    +----------------------------------------+    |
    | PV | PE |  PE | PE | PE | PE | PE | PE | PE |    |
    |    +----------------------------------------+    |
    |                                                |
    +------------------------------------------------+
           
    PE (Physical Extent物理块):
            物理卷按大小相等的"块"为单位存储,块的大小与卷组中逻辑卷块的大小相同。
    LE (Logical Extent 逻辑块):
            逻辑卷按"块"为单位存储,在一卷组中的所有逻辑卷的块大小是相同的。
            OK,基本概念已经了解了,使用lvm基本流程就是:
             
            初始化物理卷---> 创建卷组,将PV加入到卷组中--->创建逻辑卷---->创建文件系统
    1. 初始化物理卷 :
            在初始化物理卷之前,我已经清空了/dev/hda5,并且标识分区类型为83(linux分区)
            在LVM1中,必须将分区类型标识为8E(LVM分区)才可以使用,lvm2中没有这个限制。
            在创建之前,先修改下/etc/lvm/lvm.conf :
            # Exclude the cdrom drive
                 filter = [ "r|/dev/cdrom|" ]
            找到上面两行,将filter前面的#去掉,这样创建LV时就不会搜寻/dev/cdrom了。
            不然也很烦,总是提示/dev/cdrom错误。修改好后,执行vgscan命令使生效.
            [root@NEWLFS LVM2.2.00.33]#vgscan
            使用pvcreate PV1 [PV2.....] 创建物理卷:
            [root@NEWLFS mnt]#pvcreate /dev/hda5
            Physical volume "/dev/hda5" successfully created
            [root@NEWLFS mnt]#
            使用 pvdisplay 查看PV详细信息:
        [root@NEWLFS mnt]#pvdisplay
             
              代码:
           
           
               --- Physical volume ---
              PV Name               /dev/hda5
              VG Name               lvm_vg
              PV Size               20.85 GB / not usable 0
              Allocatable           yes
              PE Size (KByte)       4096
              Total PE              5338
              Free PE               4076
              Allocated PE          1262
              PV UUID               y5LlEs-iBIY-t3PU-gTaT-ZIUt-iDmE-b9J9aC
            [root@NEWLFS mnt]#
           
            2.创建卷组,并将PV加入到卷组中:
            使用vgcreate  VGNAME PV1 [PV2......]创建卷组
            [root@NEWLFS mnt]#vgcreate lvm_vg /dev/hda5
              Volume group "lvm_vg" successfully created
            [root@NEWLFS mnt]#
            使用vgdisplay 查看VG详细信息:
            [root@NEWLFS mnt]#vgdisplay
          
              代码:
           
           
                 --- Volume group ---
              VG Name               lvm_vg
              System ID
              Format                lvm2
              Metadata Areas        1
              Metadata Sequence No  3
              VG Access             read/write
              VG Status             resizable
              MAX LV                0
              Cur LV                2
              Open LV               0
              Max PV                0
              Cur PV                1
              Act PV                1
              VG Size               20.85 GB
              PE Size               4.00 MB
              Total PE              5338
              Alloc PE / Size       1262 / 4.93 GB
              Free  PE / Size       4076 / 15.92 GB
              VG UUID               TFjqOG-5aHq-6SUz-q96N-Lu20-GrrP-Qvh2WM
            [root@NEWLFS mnt]#
           
            当重新启动或执行vgchange -a n 后,需要重新激活VG,才可以访问VG,LV
            [root@NEWLFS mnt]#vgchange -a y lvm_vg
              1 logical volume(s) in volume group "lvm_vg" now active
            [root@NEWLFS mnt]#
            当关机或不再使用VG时,使用 vgchage -a n VGNAME 使VG不可用。
             
            [root@NEWLFS mnt]#vgchange -a n lvm_vg
              0 logical volume(s) in volume group "lvm_vg" now active
            [root@NEWLFS mnt]#
           3. 创建逻辑卷:
            使用lvcreate -L Size -n NAME VGNAME 创建逻辑卷:
            [root@NEWLFS ~]#lvcreate -L 2G -n lv_home lvm_vg
              Logical volume "lv_home" created
            [root@NEWLFS ~]#
            使用lvdisplay 查看LV详细信息:
            [root@NEWLFS mnt]#lvdisplay
          
              代码:
           
           
                  --- Logical volume ---
              LV Name                /dev/lvm_vg/lv_usr
              VG Name                lvm_vg
              LV UUID                zrpaw1-vMdI-KvT2-4XlA-2TxZ-4iV8-38fN88
              LV Write Access        read/write
              LV Status              NOT available
              LV Size                2.93 GB
              Current LE             750
              Segments               1
              Allocation             inherit
              Read ahead sectors     0
              --- Logical volume ---
              LV Name                /dev/lvm_vg/lv_home
              VG Name                lvm_vg
              LV UUID                spGvLc-8lOM-CgAi-8XvI-E5Jt-xCce-l4B54K
              LV Write Access        read/write
              LV Status              available
              # open                 0
              LV Size                2.00 GB
              Current LE             512
              Segments               1
              Allocation             inherit
              Read ahead sectors     0
              Block device           253:0
            [root@NEWLFS mnt]#
           
            由于我之前已经创建了一个lv_usr 所以这里显示两个LV
                      
    最后一步,创建文件系统。这里我使用ReiserFS 3.6.19 :
    [root@NEWLFS mnt]#mkreiserfs /dev/lvm_vg/lv_home
              代码:
           
           
              
            ..........略
            Continue (y/n):y
            Initializing journal -   0%....20%....40%....60%....80%....100%
            Syncing..ok
            Tell your friends to use a kernel based on 2.4.18 or later,
            and especially not a
            kernel based on 2.4.9, when you use reiserFS. Have fun.
            ReiserFS is successfully created on /dev/lvm_vg/lv_home.
            [root@NEWLFS mnt]#
           
            创建挂载点,挂载它:
            [root@NEWLFS mnt]#mkdir lvm_usr lvm_home
            [root@NEWLFS mnt]#mount -t reiserfs /dev/lvm_vg/lv_home lvm_home/
            [root@NEWLFS mnt]#df
         
              代码:
           
           
                 Filesystem            Size  Used Avail Use% Mounted on
            /dev/md0              5.4G  2.8G  2.7G  51% /
            /dev/hda1             6.4G  4.0G  2.5G  62% /mnt/C
            /dev/hda6              25G   22G  3.6G  86% /mnt/E
            /dev/hda7             9.7G  3.7G  5.6G  40% /mnt/lfs
            /dev/hda8              99M   18M   76M  20% /boot
            /dev/hda10            6.7G  2.9G  3.4G  46% /mnt/mdk
            /dev/mapper/lvm_vg-lv_home
                                  2.0G   33M  2.0G   2% /mnt/lvm_home
    [root@NEWLFS mnt]#
           
            
            OK,现在已经成功的创建好了逻辑卷,并且使用了ReiserFS,可以投入使用啦。
            下一部分说一下 如何管理LVM
            Have Fun !  



    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/3166/showart_12661.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP