底层PV
中层VG
上层LV
 
PE(phsical extent):在逻辑层次上,VG把PV分成固定大小的块,这些块就叫PE,默认为4M ,创建LV的过程就是分多少个PE的过程。
自动分区的过程中,除了根目录,把其他所有的磁盘空间都做成LV
 
 
 
一. LVM概述
 
LVM: Logical Volume Manager, Version: 2
用的是dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块;
 
两种引用文件的方式,他们引用的其实都是/dev/dm-0,1,2,3...等文件,
1.     /dev/mapper/VG_NAME-LV_NAME
       例如: /dev/mapper/vol0-root
 
2.   /dev/VG_NAME/LV_NAME
      例如:  /dev/vol0/root
 
 
 
二. 如何创建和管理逻辑卷呢?
 
 
首先要先创建PV,新建分区后需要把其类型调整为8e(Linux LVM)
 
   1)pv(物理卷)管理工具:
        pvs:简要pv信息显示
        pvdisplay:显示pv的详细信息
        pvcreate /dev/DEVICE: 创建pv
 
   2)vg(卷组,相当于逻辑分区,不能分区,可包含多个pv)管理工具:
        vgs--简要显示所有卷组
        vgdisplay
 
        vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]  ----指定大小
        例如:vgcreate myvg /dev/sda3
 
        vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
 
        vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...],需要先做pvmove
            
        vgremove
 
 
   3)lv(逻辑卷)管理工具:
        lvs
        lvdisplay
        lvcreate -L #[mMgGtT] -n NAME VolumeGroup  #-L指明大小,-n指明名字, 例如 lvcreate -L 2G -n mylv myvg,然后正常格式化,mke2fs -t ext4 -b 1024 -L MYLV /dev/myvg/mylv
        lvremove /dev/VG_NAME/LV_NAME
 
 
    扩展逻辑卷:
        # lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME    #带上+是准确的加多少空间;不带上+,是扩展后的总空间
        # resize2fs /dev/VG_NAME/LV_NAME
 
    缩减逻辑卷:
        # umount /dev/VG_NAME/LV_NAME
        # e2fsck -f /dev/VG_NAME/LV_NAME
        # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
        # lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
        # mount
 
 
4)例子
添加硬盘到卷组, 就是加一块新硬盘,增加到指定硬盘空间。
 
 
1、给新硬盘创建分区    fdisk /dev/sdc
       n
       p
       1
       w
2、创建物理卷 pvcreate /dev/sdc1
3、格式化物理卷 mkfs.ext3 /dev/sdc1, 选择哪一个文件系统最好用mount命令查看一下
4、将新的物理卷添加到卷组中 vgextend VolGroup00 /dev/sdc1,用pvs验证是否成功
5、将新的空间添加到逻辑卷中 lvextend -L +10G /dev/VolGroup00/LogVol00(提前可以挂载到目录下查看大小再决定添加的空间),此例是加了10G,随个人需要增加空间
6、加上去后,目前用df -h还看不到改变,需要激活 resize2fs -p /dev/VolGroup00/LogVol00
7、用df -h查看
 
实例1. 某校创建了300G的硬盘sdb,需要我加到卷组中,并挂到/home目录下,(其实挂载根目录下更好)
mkfs.ext4 /dev/sdb
vgextend VolGroup /dev/sdb
lvextend -L +299G /dev/VolGroup/lv_home
resize2fs -p /dev/VolGroup/lv_home
 
 
实例2. 某校虚拟机扩容 +200G
 
1. 先在虚拟机外面进行硬盘扩展--学校老师做了,但是我fdisk没看到有变化,重启一下就能看到扩展了200G
2. fdisk /dve/sda  新建分区,这里dev/sda3,新建的分区空间很小,那么需要重新新建一个分区,dev/sda4,w保存,然后重启
3. 格式化分区 mkfs.ext4 /dev/sda4
4. 建立pv,pvcreate /dev/sda4
5. 扩展vg ,  vgextend ubuntu_vg /dev/sda4  -------把新建的分区扩展到源ubuntu_vg
6. vgdisplay查看一下
7. 扩展lv,lvextend -L +199.9G /dev/ubuntu_vg/root
8. vgdisplay 查看一下
9. resize2fs -p /dev/ubuntu_vg/root    调整文件系统
 
http://www.cnblogs.com/tigertall/p/5257324.html    -----------最后一步按照 resize2fs -p /dev/VolGroup/lv_home  可以成功。
 
 
 
三.     快照:snapshot
 
         将文件系统迅速的扫描一遍,类似硬链接,必须在同一卷组,仅存储快照那一刻发生变化的文件,之前的原文件直接指向原地址空间。
         快照空间的大小取决于这个快照想用多少时间,比如2个小时内系统数据变化量大概为2G,那么快照空间设个3G就行。
 
        lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name #-s:指明是快照,-n:指明名字,-p:权限
        例如:lvcreate -s -L 512M -n mylv-snap -p r /dev/myvg/mylv
                  mount /dev/myvg/mylv-snap /mnt
 
        不用快照的时候
         umount /mnt
         lvremove /dev/myvg/mylv-snap
 
    练习1:创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录;
    练习2: 新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录;
    练习3:扩展testlv至7G,要求archlinux用户的文件不能丢失;
    练习4:收缩testlv至3G,要求archlinux用户的文件不能丢失;
    练习5:对testlv创建快照,并尝试基于快照备份数据,验正快照的功能;
 
 
 
四.  dd命令:convert and copy a file------底层文件复制工具,效率比cp更高
 
        用法:
            dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
                bs=#:block size, 复制单元大小;
                count=#:复制多少个bs;
                例如:复制etc/fstab文件中的前100个字节  dd if=/etc/fstab of=/tmp/fstab.2 bs=1 count=100
 
         1)磁盘拷贝:
              dd if=/dev/sda of=/dev/sdb
 
         2)备份MBR
                dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
 
         3)破坏MBR中的bootloader,不会影响分区表:
                dd if=/dev/zero of=/dev/sda bs=256 count=1
 
        两个特殊设备:
            /dev/null: 数据黑洞;
            /dev/zero:吐零机;

逻辑卷磁盘管理和dd命令的更多相关文章

  1. Linux系统管理第五次作业 LVM逻辑卷 磁盘配额

    1.为主机增加80G SCSI 接口硬盘 2.划分三个各20G的主分区 [root@localhost ~]# fdisk /dev/sdf 欢迎使用 fdisk (util-linux 2.23.2 ...

  2. Linux磁盘管理:LVM逻辑卷的拉伸及缩减

    ①查看当前VG的信息,保证VG中有足够的空闲空间 通过 vgdisplay 或者 vgs 命令 [root@rusky ~]# vgs rusky-vg VG #PV #LV #SN Attr VSi ...

  3. 【转载】Linux磁盘管理:LVM逻辑卷管理

    Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一. ...

  4. Linux系统磁盘管理(lvm逻辑卷管理)

    linux系统用户常遇到的一个问题就是如何精准的评估分区的大小,已分配合适的磁盘空间:普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文 ...

  5. [TimLinux] Linux LVM逻辑卷操作指南

    1. 新磁盘创建分区 $ fdisk /dev/newdisk n 创建分区 p 显示分区表 t 使用8e分区类型 d 删除已经存在的分区 w 将分区表写入并退出 q 不写入直接退出 如果使用整个磁盘 ...

  6. Linux LVM逻辑卷配置过程详解

    许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据,甚至被迫重新规划分区并重装操作系统,以 ...

  7. Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)

    Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据, ...

  8. LVM逻辑卷

    LVM逻辑卷 一.LVM逻辑卷概述 1.LVM的作用: 扩充磁盘:不动数据,在使用状态,将磁盘容量变大. 能把多个物理的磁盘整合成一张大的虚拟的磁盘,比如:有3个5G的磁盘,能把它们整合成一个15G的 ...

  9. 逻辑卷管理-LVM(Logical Volume Manager)

    一. 概念与由来 LVM:逻辑卷管理(Logical Volume Manager) 普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某文件时,这个文件因为受上层文件 ...

随机推荐

  1. protobuf's extension

    [protobuf's extension] extension允许第三方扩展协议,开发方需要像下面这样定义: 扩展方需要像下面这样扩展: 使用的时候必须用SetExtension方法: 参考:htt ...

  2. react native 触摸Touchable***的区别(TouchableWithoutFeedback、TouchableOpacity、TouchableHighlight、TouchableNativeFeedback)

    一.问题背景: react native的跨平台开发没有button的概念,而是使用touchable系列实现点击触发效果. 而touchable系列就有四个之多,而且相互之间仍有较大差别,这就给我们 ...

  3. leetcode 27 Romove element

    描述: 删除指定元素.不是真的删除,要求把不符合的元素前移. 解决: 非常简单. int removeElement(vector<int>& nums, int val) { ) ...

  4. ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql 启动不了 ERROR 2002 ( ...

  5. C#开发微信公众化平台

     C#开发微信公众化平台 写在前面 服务号和订阅号 URL配置 创建菜单 查询.删除菜单 接受消息 发送消息(图文.菜单事件响应) 示例Demo下载 后记 最近公司在做微信开发,其实就是接口开发,网上 ...

  6. http://classworlds.codehaus.org/apiusage.html

    API Usage The Java API can be used to create new realms and connect realms together through importat ...

  7. 操作ini配置文件设计一个最基本的可视化数据库系统

    对于很多小项目来说,不需要搭建专门的数据库系统(例如用SQLite搭建本地数据库),这时可以用ini配置文件实现一个最基本的数据库,实现数据库最基本的增删改查功能. ini配置文件的用法参考我以前写的 ...

  8. ThinkCMF框架使用 - 如何创建应用 -1

    .应用就是application目录下的一个模块,它是独立于其它模块存在的,有自己独立的运行空间: .应用采用MVC的结构: .拿Blog应用举例: Blog Controller 控制器目录(必备) ...

  9. Linux addr2line命令

    一.简介 Addr2line (它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名.函数名和源代码行数的工具.这种功能对于将跟踪地址转换成更有意义的内容来 ...

  10. 20155230 2016-2017-2 《Java程序设计》第七周学习总结

    20155230 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 世界时:在1972年引入UTC之前,GMT与UT是相同的 格林威治标准时间(GMT),现已不 ...