zoukankan      html  css  js  c++  java
  • [收藏]实践参考:parted创建硬盘分区并创建LVM


    从RHEL5开始,RHEL有了新的分区工具,parted,最大的亮点就是可以分2TB以上的分区,而且操作简单,个人感觉比fdisk好使
    现在用一块硬盘/dev/sdb 使用parted分区,并且创建LVM

    一。创建分区
    1。先rpm -qf /sbin/parted
    parted-2.1-13.el6.x86_64
    如果没有就先安装

    对/dev/sdb进行分区
    parted /dev/sdb
    GNU Parted 2.1
    使用 /dev/sdb
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted)                
    进入parted对话框,输入help得到帮助

    2。进行分区,使用mkpart创建分区,先创建一个主分区,大小为2g

    mkpart primary 1024K 2048G

    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdb: 8590MB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number  Start   End     Size    Type     File system  标志
     1      1024kB  2048MB  2047MB  primary

    3。 现在开始创建一个扩展分区

    mkpart extended 2048M 8590M

    4。 成功后创建逻辑分区

    mkpart logical 2048M 8590M

    5。成功后,需要更改分区类型,改为LVM

    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdb: 8590MB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number  Start   End     Size    Type      File system  标志
     1      1024kB  2048MB  2047MB  primary
     2      2049MB  8590MB  6541MB  extended               lba
     5      2049MB  8590MB  6541MB  logical

    6。使用toggle 更改硬盘类型

    toggle 1 lvm

    toggle 5 lvm

     

    Model: VMware, VMware Virtual S (scsi)
    Disk /dev/sdb: 8590MB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number  Start   End     Size    Type      File system  标志
     1      1024kB  2048MB  2047MB  primary                lvm
     2      2049MB  8590MB  6541MB  extended               lba
     5      2049MB  8590MB  6541MB  logical                lvm


    7。现在退出parted,然后分区就创建完毕了。这时候要么重启,然后使分区表生效,或者使用命令partprobe将分区表注入到内核中

    [root@station ~]# fdisk -cul /dev/sdb

    Disk /dev/sdb: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00042564

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2000     4000000     1999000+  8e  Linux LVM
    /dev/sdb2         4001792    16777215     6387712    f  W95 Ext'd (LBA)
    /dev/sdb5         4001793    16777215     6387711+  8e  Linux LVM

    二。创建完分区后,就可以创建PV了,PV应该是physical volume的缩写,物理卷

    1。使用命令pvcreate创建物理卷

    pvcreate /dev/sdb1

    pvcreate /dev/sdb5

    2。 创建VG(卷组),名称为rhel,并将PV包含在VG中,通过包含物理卷,可以为系统提供逻辑的划分空间

    vgcreate rhel /dev/sdb1 /dev/sdb5

    也可以通过vgextend 来向rhel组添加物理卷

    vgextend rhel /dev/sdb6

    3。 创建完卷组后,就可以创建逻辑卷了,这逻辑可真够复杂的,都已经三层了

    lvcreate -n lvname -L 2G rhel

    参数-n表示逻辑卷的名称,-L表示大小,后面是卷组名称

    可以通过lvdisplay /dev/rhel来查看所创建的逻辑卷

    4。 格式化逻辑卷为ext4格式,并添加挂载点

    mkfs.ext4 /dev/rhel/lvname

    mkdir /data

    mount /dev/rhel/lvname /data

    blkid /dev/rhel/lvname

    echo "UUID=d8d7a0bd-0d3e-4dbb-a7bc-ad5f4529ae9b /data ext4 defaults 1 2" >>/etc/fstab

    df -h /data

    [root@station ~]# df -h /data
    文件系统       容量  已用  可用 已用%% 挂载点
    /dev/mapper/rhel-lvname
                          2.0G   67M  1.9G   4% /data

    5。 现在一个逻辑卷就创建好了。并挂载到了/data目录下,大小为2G         

    三。扩展逻辑卷和ext4

    逻辑卷的好处就是可以扩展硬盘空间,当分配给一个挂载点的硬盘空间不足时,可以动态的加载硬盘容量,这个感觉跟微软的动态磁盘类似,不过微软的动态磁盘就不说什么了。这个东西有利,但是安全性无法保障,例如重装系统的时候,如果硬盘是动态磁盘,就准备哭吧。不知道RHEL对LVM的动态支持性怎么样,这个还有待于以后的实验。

    首先,扩展逻辑卷,可以在线扩容。具体步骤如下:

    1。先确保卷组的可扩容容量,防止扩容容量超出卷组可用容量,如果卷组容量不足,可以通过vgextend来扩展

    vgdisplay rhel

    2。扩展逻辑卷,例如,要给逻辑卷lvname扩展2G

    lvresize -L +2G /dev/rhel/lvname

    运行lvdisplay rhel查看,可以看到已经扩展成4G

    [root@station ~]# lvdisplay rhel
      --- Logical volume ---
      LV Name                /dev/rhel/lvname
      VG Name                rhel
      LV UUID                tDIQwm-dCQ8-8GWO-1SGb-2vyx-M2tS-534s4t
      LV Write Access        read/write
      LV Status              available
      # open                 1
      LV Size                4.00 GiB
      Current LE             1024
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:2

    但是挂载点/data却仍然是2GB

    [root@station ~]# df -h /data
    文件系统       容量  已用  可用 已用%% 挂载点
    /dev/mapper/rhel-lvname
                          2.0G   67M  1.9G   4% /data

    3。使用resize2fs来扩展挂载点的文件系统

    resize2fs /dev/rhel/lvname

    做完后,再查看/data,可以看到已经扩展

    [root@station ~]# df -h /data
    文件系统       容量  已用  可用 已用%% 挂载点
    /dev/mapper/rhel-lvname
                          4.0G   68M  3.7G   2% /data

     

    其次,可以缩减容量

    在缩减容量的时候,需要将硬盘离线,并且需要备份数据。

    缩减容量的顺序相反,先要从文件系统缩减容量,然后再从逻辑卷缩减容量

    1。解除挂载

    umount /data

    2。 执行fsck验证所有文件系统数据结构

    fsck -f /dev/rhel/lvname

    3。 缩减文件系统,将大小调整为3G,也就是减少1G

    resize2fs /dev/rhel/lvname 3G

    4. 缩减逻辑卷(LV),将大小调整为3G

    lvreduce /dev/rhel/lvname -L -1G

    [root@station ~]# lvreduce /dev/rhel/lvname -L -1G
      WARNING: Reducing active logical volume to 3.00 GiB
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce lvname? [y/n]: y
      Reducing logical volume lvname to 3.00 GiB
      Logical volume lvname successfully resized

    这个比较讨厌,不能跟resize的容量对应起来。

    5。重新挂载

    mount -a
     

    这样,一个LVM的创建,增加与删减的操作就完成了。

     刚才看了一篇文章

    http://hi.baidu.com/suofang/blog/item/02ce933dd837b614bba1676c.html

    对LVM的逻辑结构讲的比较清楚,总算弄明白了PE个数与PE大小之间的关系,所以在扩展的时候,还可以通过PE的个数来扩展,这样的话,可以利用所有的空间或者部分的空间,比较欣赏这点。

    像扩展空间就可以使用

    lvextend -l +100 /dev/rhel/lvname

    剩下的步骤一样,每个PE在创建vg的定义,默认是4m,可以修改成最大16GB,乖乖,真够大的,一个卷组里面最大的PE个数是2的16次方,65536个。这样灵活的组合,就可以管理容量巨大的卷组。非常犀利啊

    参考:http://blog.sina.com.cn/s/blog_53737d110100x8wg.html

    赠人玫瑰
    手留余香

    我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

  • 相关阅读:
    数组与字符串中的关于截取的总结
    js函数哪些事
    BFC的基础理解及应用场景
    idea永久激活码20211107
    SpringBoot加载properties配置文件的顺序
    Java排序算法之归并排序
    sort与sorted排序
    自定义的迭代器之 生成器
    通过可迭代对象,迭代器,理解dict,list,filter,map,zip,dict,list之间的联系
    迭代器原理 、for循环原理、自定义一个迭代器
  • 原文地址:https://www.cnblogs.com/haochuang/p/2393690.html
Copyright © 2011-2022 走看看