盘面上可以细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512bytes那么大。

通常所说的”硬盘分区”就是指修改磁盘分区表,它定义了”第n个磁盘块是从第 x个柱面到第y个柱面”.因此,当系统要读取第n个磁盘块时,就是去读硬盘上第x个柱面到第y个柱面的信息.

整块磁盘的第一个扇区特别重要,因为它记录了整块磁盘的重要信息:

  1. 主引导分区(Master Boot Record, MBR):可以安装引导加载程序的地方,有446bytes.
  2. 分区表(partition table):记录整块磁盘分区的状态,有64bytes。

磁盘分区表(partion table)

在分区表所在的64bytes容量中,总共分为四组记录区。每组记录区记录了该区段的起始与结束的柱面号码。

  • 其实所谓的分区只是针对那个64bytes的分区表进行设置而已。
  • 硬盘默认的分区表仅能写入四组分区信息
  • 四组分区信息我们称为主(Primary)或者扩展(Extended)分区。
  • 分区最小单位为柱面(cylinder)。

分区的优点:

  1. 数据安全
  2. 有助于数据读取的速度和性能

扩展分区的目的是使用额外的扇区记录分区信息,扩展分区本身并不能拿来格式化。由扩展分区切出来的分区,就被称为逻辑分区(logical partition)。逻辑分区的设备名称号码由5号开始。

主分区、扩展分区和逻辑分区的定义:

  • 主分区与扩展分区最多可以有4个(磁盘限制)
  • 扩展分区最多只有1个(操作系统限制)
  • 逻辑分区是由扩展分区持续切割出来的分区
  • 能够被格式化后作为数据访问的分区为主分区与逻辑分区,扩展分区无法格式化。
  • 逻辑分区的个数依操作系统而不同,SATA硬盘则有11个逻辑分区(5号到15号)。

分区是个很麻烦的东西,因为它是以柱面为单位的“连续”磁盘空间,且扩展分区又是类似独立的磁盘空间。

扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。 他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分。

磁盘分区

LVM卷管理

disk=/dev/vdb
pvcreate $disk # 磁盘还没有分主分区或者扩展分区,就可以直接创建物理卷(Physical volume (PV) )了,物理卷的名字就是磁盘的名字/分区的名字
vgcreate ci-vg $disk # 创建卷组Volume group (VG),卷组名为 ci-vg1
lvcreate -L 100G -n app_data ci-vg # or lvcreate -L 100G --name app_data ci-vg,将ci-vg 卷组中的 100G 空间划分为逻辑卷Logical volume (LV),逻辑卷名为 app_data
# lvcreate -l +100%FREE -n app_data ci-vg 将卷组百分百的空间都划分给 app_data 这个逻辑卷
lvdisplay # 查看逻辑卷路径
mkfs.ext3 /dev/ci-vg/app_data # 格式化
mount /dev/ci-vg/app_data /data # 挂载,前提是要有 /data 目录
df -Th # 查看

接着,为了开机自动挂载,执行:

echo "mount /dev/ci-vg/apkg /apkg" >> /etc/rc.d/rc.local

这个命令在有些情况不会生效,开机自启挂载磁盘,稳妥的方式推荐编辑 /etc/fstab 文件:

/dev/ci-vg/app_data /data ext3 defaults 0 0

分区常用命令

  • lsblk:查看磁盘分区情况 ★★★
  • vgdisplay: 查看卷组信息
  • vgs: 查看卷组信息,简略
  • fdisk -l:查看系统内分区信息

扩容

pvcreate /dev/vdc # 新增磁盘vdc,创建为物理卷
vgextend ci-vg1 /dev/vdc # 将新增的物理卷添加到已有的逻辑卷组中
lvextend -l +100%FREE /dev/ci-vg1/apkg # # 用 lvextend 将 /dev/ci-vg1/apkg 所在卷组所有剩余空间都分配给了它
resize2fs /dev/ci-vg1/apkg # # 磁盘格式是 ext2 ext3 ext4 使用 resize2fs, xfs使用 xfs_growfs 对扩容后的 LV 格式大小调整

扩容参考

FAQ

Q1:发现开机启动时,rc.local没有自启动执行

尝试了chmod +x /etc/rc.d/rc.local之后,问题依旧,排除了权限的问题。

编辑rc.local文件,在touch /var/locak/subsys/local下一行,加上sleep 10,问题解决。

Q2: -bash: pvcreate: command not found

通过yum install lvm2安装,支持命令。

参考

开机挂载

Linux lvm 分区知识笔记的更多相关文章

  1. linux LVM分区查看dm设备

    linux LVM分区查看dm设备 在linux中iostat -d查看磁盘状态时,有的会有如下dm-0,dm-1的条目. Device:            tps    kB_read/s   ...

  2. Linux LVM分区管理、扩展

    一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写.LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它 ...

  3. Linux硬盘分区知识

    前言 硬盘使用前,一般要分区,格式化(创建文件系统)<== 存放数据 类比,房子使用前,一般要隔断,装修,买家具,再住人. 分区 一块硬盘: 主分区.扩展分区.逻辑分区 主分区+扩展分区的数量& ...

  4. 如何给VirtualBox虚拟机的ubuntu LVM分区扩容

    我在VirtualBox安装的ubuntu里安装Cloud Foundry时遇到错误信息,磁盘空间不够了: 使用这三个命令做了清理之后,结果依然不够理想: (1) sudo apt-get autoc ...

  5. Linux下添加磁盘创建lvm分区

    shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...

  6. linux swap 分区调控(swap分区 lvm管理)

    注:linux swap分区 采用lvm管理,调控可以采用下面的方法 一.查看 swap    lv [root@testdb ~]# vgdisplay -v Finding all volume ...

  7. Linux LVM硬盘管理及LVM分区扩容

    LVM磁盘管理 一.LVM简介... 1 二. LVM基本术语... 2 三. 安装LVM... 3 四. 创建和管理LVM... 4 2. 创建PV.. 6 3. 创建VG.. 7 4. 创建LV. ...

  8. Linux LVM 逻辑分区

    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现.普通 ...

  9. linux创建lvm分区

    创建LVM分区 shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle ...

随机推荐

  1. Python全栈-day2-day3-语法基础1

    1.什么是变量,为什么需要变量 变量即变化的量,衡量现实中实物的状态:程序执行的本质就是一系列的状态变化,变是程序本身执行的直接体现,因此程序的执行需要这种机制将执行状态以及状态的变化保存下来. 1) ...

  2. “编程利器”:VSCode

    原先一直使用sublime text3,并且认为它是很好的编程利器. 但最近写代码时,发现很多代码还是提示的不够完整.我们知道,当代码名字很长时,还没有提醒,这是非常苦恼的一件事!同时它的调试功能也不 ...

  3. CSS文本(Text)属性-----letter-spacing和text-align

       letter-spacing letter-spacing:normal | <length>  指定字符之间的额外间隙 normal:默认间隔.计算值为0 <length&g ...

  4. arc 093 D – Grid Components

    题意: 给出A和B,要求构造出一个具有A个白色连通块和B个黑色连通块的矩阵. 这个矩阵的长和宽最多为100. 思路: 试想如果横着每个点同类的点隔着一个不同的点,竖着每个同类的点隔着一个不同的点,那么 ...

  5. jfinal 项目 控制层、ORM层、AOP层,在发表之前一定要记得保存

    一.ORM简介 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.简单的说,ORM是通过使用描述对象和数据 ...

  6. eclipse 安装和使用AmaterasUML

    1. 安装AmaterasUML前,需要先安装GEF(Eclipse Graphical Editing Framework (GEF)) 采用eclipse在线安装方式安装就好. a. 查看ecli ...

  7. hive的find_in_set函数

    集合查找函数: find_in_set语法: find_in_set(string str, string strList) 返回值: int说明: 返回str在strlist第一次出现的位置,str ...

  8. php小数加减精度问题,比特币计算精度问题

    php小数加减精度问题,比特币计算精度问题 在php开发时,有小数加减的场景.结果发现不能够等于预想的值,bccomp比较二个高精确度数字.语法: int bccomp(string left ope ...

  9. PHP 取302跳转后真实 URL 的两种方法

    1 . 第一种,CURL形式[感觉处理略慢,代码偏多] $url = '将跳转的URL'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url) ...

  10. JustOj 1036: 习题6.11 迭代法求平方根

    题目描述 用迭代法求 .求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n]) 要求前后两次求出的得差的绝对值少于0.00001. 输出保留3位小数 输入 X 输出 X的平方根 样例输 ...