Linux磁盘管理:LVM或Linux文件

磁盘管理:LVM

1. 新建

Step 1 物理分区fdisk
使用fdisk命令创建新分区,并使用fdisk的t命令修改分区类型为8e(lvm类型)。默认分区id都是83,即linux文件类型,文件类型ID为82,则为交换分区swap。

fdisk -l
fdisk /dev/sdb //分区后重启linux(或执行partprobe,不需重启即可通知内核)。

fdisk /dev/sdb
Command (m for help): n # 输入n新建一个分区
Command action
e extended
p primary partition (1-4)
p # 输入p新建一个主分区
Partition number (1-4): 1 # 分区号
First cylinder (1-1044, default 1): 直接回车,使用默认的起始柱面
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +32G # 大小,如果直接回车,使用默认截止柱面,那对于这块硬盘,只建立一个分区,大小是整个磁盘。
Command (m for help): t # 改变类型
Selected partition 1
Hex code (type L to list codes): 8e # LVM 的分区代码;默认分区id都是83,即linux文件类型;文件类型ID为82,则为交换分区swap。
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w # 输入w, 保存分区表并退出

或者上面不执行,直接使用整块盘,后续/dev/sdb1替换为/dev/sdb。

Step 2 创建PV pvcreate
物理磁盘被格式化为PV,空间被划分为一个个PE,每个默认大小是4MB。

pvcreate /dev/sdb1

提示没有此命令,则需要按照最后的指导安装lvm。

Step 3 新建vgcreate
新建

vgcreate vgaze /dev/sdb1 /dev/sdb2  //新建卷组,dev下会多处一个名为vgaze的目录。

Step 4 新建lvcreate
LV实际由LE组成,LE与PE一一对应,LV大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘。
新建

lvcreate -n lvaze  -L 256M vgaze //在卷组vgaze中建立名为lvaze的逻辑卷,目录vgaze中会多一个名为lvaze的符号链接。
lvdisplay

Step 5 创建文件系统

mkfs -t ext3 /dev/vgaze/lvaze //在lv上创建文件系统

Step 6 挂载

mkdir /root/aze //创建挂载点
mount  /dev/vgaze/lvaze /root/aze //挂载文件系统

Step 7 更新/etc/fstab
内核启动过程会读取/etc/fstab配置文件来自动挂载磁盘,把LVM创建的逻辑卷挂载信息写入这个文件,就不需要在开机后手动挂载。

# 执行vi /etc/fstab命令,在最后追加一行。
/dev/vgaze/lvaze    /root/aze    ext3    defaults    0    2
执行:wq!保存退出

测试开机自动挂载

mount -a
df -h

2. 逻辑卷扩缩容

2.1 逻辑卷扩容

Step 1 新增硬盘创建物理卷(先fdisk)
pvcreate /dev/sdc1

Step 2 物理卷加入卷组
vgextend /dev/vgaze /dev/sdb1

Step 3 卸载
umount /dev/vgaze/lvaze

Step 4 扩展lv
lvextend -L +1024M /dev/vgaze/lvazelvresize -L 40G /dev/vgaze/lvazelvresize -L +20G /dev/vgaze/lvaze

Step 5 检查磁盘错误,等待时间较长可以考虑跳过(挂载状态无法检查)
e2fsck -f /dev/vgaze/lvaze

Step 6 重设文件系统大小
resize2fs /dev/vgaze/lvaze

Step 7 挂载
mount -t ext2 /dev/vgaze/lvaze /root/aze

2.2 逻辑卷缩容

Step 1 卸载lv分区
umount /root/aze

Step 2 检查磁盘错误
e2fsck -f /dev/vgaze/lvaze

Step 3 重设文件系统大小
resize2fs /dev/vgaze/lvaze 200M

Step 4 缩减lv大小
lvreduce -L 200M /dev/vgaze/lvazelvresize -L 10G /dev/vgaze/lvazelvresize -L -30g /dev/vgaze/lvaze

Step 5 挂载分区
mount /root/aze

磁盘管理:Linux新建数据盘

  • Step 1 分区fdisk,参考以上
    fdisk /dev/vdb
  • Step 2 创建文件系统mkfs,参考以上
    mkfs -t ext4 /dev/vdb1
  • Step 3 挂载mount,参考以上
    mkdir /backup
    mount /dev/vdb1 /backup/
  • Step 4 更新/etc/fstab,参考以上

(只识别最大2T)

磁盘管理:Linux扩展原有磁盘

情景:磁盘扩容(不是新增一块硬盘)后,只能识别小容量,其余空间未利用。

4.1 LVM扩容:

使用parted工具扩容扩展分区(柱面末端),或者新增主分区,然后fdisk格式化、lvm管理。

parted工具扩容扩展分区
parted /dev/xxx
print 查看分区表,留意目标分区的’Number’ 项,后面要用。


Number  Start   End     Size    Type      File system  Flags
1      1049kB  256MB   255MB   primary   ext2         boot
2      257MB   8589MB  8332MB  extended
5      257MB   8589MB  8332MB  logical                lvm

涉及到磁盘大小变更,建议预留1G空间容差:
unit命令用于改变 parted 所用的描述大小的默认单位(比如设为 ‘compact’ 就是以 ‘MB’ 为单位)。值得注意的是,如果用 MB/GB 这样的单位,磁盘 sector 的选取会有误差的。parted 会为你选最近的 sector,但未必精确。比如 unit 为 MB,那么可能产生 +-500KB 的误差;如果是 GB,那就可能 +-500MB 的误差,这就无法容忍了。所以如果是’创建分区’这样的操作,建议用 ‘MiB’ 这样的单位,而不是 ‘MB’。’MiB’ 会是一个精确值,parted 不会像对待 ‘MB’ 那样去找它最近的单元。

对指定Number为2的分区从 start 位置为257MB到end位置为磁盘末尾。
resize 2 257MB -0

新增逻辑分区
通过 fdisk 进入交互模式,可以通过命令 m 查看帮助。首先,输入 n 创建新分区,然后选择 l 设置新分区为逻辑分区,接下来依次设置分区的起始、终止位置(默认即完全利用这块磁盘上剩余的所有空间,所以默认即可)。

以上也可以直接新增一个主分区/扩展分区
不能扩容主分区,因为原来的分区已经在使用不能格式化

格式化与使用lvm管理
把新分区的管理系统从 Linux 改为 Linux LVM,加入到现有lv。

4.2 非LVM扩容:只能对最后一个分区操作(柱面末端)

检查一遍
fsck -f /dev/sdb3

删除现有分区,重新分区
fdisk /dev/sdb3

  • 输入d删除现有分区,注意:删除后千万不要按w保存
  • 输入n创建新分区,从原有柱面开始,到最后(默认值两次回车即可,如果之前的分区不是从第一柱面开始,则需要记录之前分区的起始柱面)
  • 新的分区操作完毕后,按w保存。

检查一遍
fsck -f /dev/sdb3

重新定义分区大小
resize2fs /dev/sdb3

重新挂载分区,查看分区
mount /dev/sdb3/mnt/
df -h

扩展

安装LVM

uname -a //查看内核信息
yum install lvm2 device-mapper //安装 LVM2,linux内核2.6.9版本开始,不用单独安装device-mapper,已经包含在内,只需加载即可。
modprobe dm_mod //加载mapper模块
lsmod | grep dm_mod //是否加载了dm_mod

LVM命令

任务 PV 阶段 VG 阶段 LV 阶段
列出 (display) pvdisplay vgdisplay lvdisplay
搜寻 (scan) pvscan vgscan lvscan
创建 (create) pvcreate vgcreate lvcreate
删除 (remove) pvremove vgremove lvremove
改变容量 (resize) lvresize
扩展 (extend) vgextend lvextend (lvresize)
减少 (reduce) vgreduce lvreduce (lvresize)
改变属性 (attribute) pvchange vgchange lvchange

change,有变化后需要激活?

/etc/fstab内容介绍

/etc/fstab文件内容有6列:

/dev/vgaze/lvaze /root/aze ext3 defaults 0 2

第一列:磁盘/LV的路径或UUID
第二列

:挂载点目录
第三列:磁盘文件系统的格式
第四列:文件系统参数,defaults,等于rw, suid, dev, exec, auto, nouser, async。
第五列:dump utility根据此值决定是否备份,如果值为0,dump忽略此文件系统,如果是1,dump会对此系统作一个备份。大部分用户没有安装dump,所以这个值应该写为0。
第六列:是否用fsck检验文件系统完整性,值可以是0,1和2。 值为0,则不会被fsck utility检查。值为1,拥有fsck检查的最高优先级,root文件系统应该拥有最高的优先权。其它文件系统,如果想用fsck检查,则值为2。

主分区与扩展分区,MBR与GPT

硬盘的第一个扇区(第0扇区)用来存放主引导记录(MBR),也称MBR扇区。一个扇区是512字节,因此MBR扇区的大小也是512字节,其具体数据结构是:446个字节的引导代码、64个字节的分区表及2个字节的签名值"55AA"。由于MBR的分区表只有64个字节,一个分区需要16Bytes空间来存储相关信息,所以分区表只能存储4个分区记录。

主分区(注意扩展分区也是一个主分区)的最大个数是四,当创建四个主分区时,就无法再创建扩展分区。

为了突破四个主分区的限制,更好规划磁盘空间大小,Linux系统引入了扩展分区的概念(类似把主分区进行细分,衍生出二级分区表)。管理员可以把其中一个主分区设置为扩展分区(注意只能够使用一个扩展分区)来进行扩充。扩展分区无法直接使用,必须细分成逻辑分区才可以用来存储数据。

MBR分区格式的最大分区为2TB,GPT分区没有2TB的限制,理论上最大分区为18EB。如果要创建大于2TB的GPT分区,就不能使用MBR 格式的分区表,需要使用linux 下的Parted分区工具。

#azeqjz

你可能感兴趣的:(Linux磁盘管理:LVM或Linux文件)