底层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. redis持久化详解

    一.RDB持久化 RDB 持久化 可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). 优点:快速持久化.占用磁盘空间少.适合于用做备份,主从复制也是基于RD ...

  2. [OS] 远程启动计划任务时以管理员身份运行

    在Jenkins建了一个task自动启动Selenium的Grid,命令行是这样写的: schtasks /end /tn RestartGrid /s SZTEST201606 /u szdomai ...

  3. 【新手指南】App原型设计:如何快速实现这6种交互效果?

    做App原型设计,那么页面切换.进度条.页面滚动.图片轮播,下拉菜单,搜索框这些交互效果必不可少.如何简单快速地实现这些效果呢?以下小编根据经验为大家提供了一些简单的设计方法,以供参考. 1.页面跳转 ...

  4. 441. Arranging Coins

    static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NULL); ; }(); class Solution { publ ...

  5. [在职软件工程]基于CMMI的软件工程教程

    第1章 软件工程基础 1.1软件工程基本原理 a.按照软件生命周期的阶段划分制定计划,严格依据计划进行管理 项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划 b.坚持进行阶 ...

  6. IntelliJ IDEA 2017版 快捷键CTRL + SHIFT + A无效如何调试(详细的开启idea自动make功能 )

    1.前景描述 因为我把编译器的快捷键都设置成eclipse模式了,所以要做热部署的时候,需要CTRL + SHIFT + A --> 查找Registry --> 找到并勾选compile ...

  7. pyhon 去除列表中重复元素

    Python set() 函数 描述 set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. 语法 set 语法: class set([iterabl ...

  8. mdk3攻击实例

    Authentication Flood,mdk3下参数为a: mdk3 mon0 a –a AP的MAC地址(BSSID) -c来对指定的频道进行攻击 -a固定bssid进行攻击 -s控制发包速率. ...

  9. swift 创建UICollectionView

    // //  CollectionViewController.swift //  tab // //  Created by su on 15/12/8. //  Copyright © 2015年 ...

  10. swift学习之Label

              //UILabel的使用方法        let label:UILabel = UILabel(frame: CGRect(x: 0, y: 100, width: view. ...