免费注册 查看新帖 |

Chinaunix

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

LVM+ReiserFS v3.6.19=灵活+速度(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-03 02:03 |只看该作者 |倒序浏览
lvm真是好东东,分区-------  想怎么分就怎么分,想怎么变,随你喜欢!
本想这个东东应该很容易搞定了,不想又搞了一下午。陷在不断的编译内核
lvm程序不断的"segment fault" 估计程序错误中就这个问题比较难办了。
完全靠经验解决 (对我等菜鸟来说,就是瞎猫碰死耗子,碰上就阿弥陀佛啦)
经过一下午的 编译内核创建lvm 的折磨,终于搞定了,还算走运  ^_^

注:LVM现在有LVM1,LVM2两种版本,本文使用的是LVM2

Ok, Let`s GO !
    什么是 LVM ? (Logical Volume Manager(逻辑卷管理))

LVM为计算机提供了更高层次的磁盘存储。
它使系统管理员可以更方便的为应用与用户分配存储空间。
在LVM管理下的存储卷可以按需要随时改变大小与移除
(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,
允许管理员用更直观的名称(如"sales'、'development')代替物理磁盘名
(如'sda'、'sdb')来标识存储卷。

简单的说就是LVM管理介于物理介质(hda,md,loop)和文件系统(ReiserFS)之间
使用LVM可以灵活的管理分区,在需要时,方便的增加或减小分区的大小
不用重新"格式化",甚至不用重新启动系统,这对于服务器系统来说很实用。
对于个人用户也是分区管理的绝佳选择,例如用几十G的空间来装linux
分区是很头疼的,简单的分成 "/","SWAP" 太过草率,也不利于管理,而分出/usr
/var /opt .... 对于每个分区大小要评估的准确,不然以后使用中出现
空间不够的情况,可能就需要转移数据,重新分区,很麻烦。
而使用LVM管理,就容易多了,可以先按照当前需要分配空间,当不够用的时候再增加
而这一切只是简单的几条命令就可以完成,甚至不用重新启动就可以使用扩展后的空间了。
是不是有些神奇?  follow me ^_^
使用LVM2需要三件事:
   
   
   
    安装device-mapper库安装lvm2 tools
      
  • 在内核中支持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系统中的分区,它在卷组上建立

    是一个标准的块设备,可以在其上建立文件系统。

       
       
       
    [color="#000000"]+-- 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/4133/showart_13903.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

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

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP