1、Linux LVM文件系统
1.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
1.2. 逻辑卷扩容
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/lvaze
或lvresize -L 40G /dev/vgaze/lvaze
或lvresize -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
1.3 逻辑卷缩容
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/lvaze
或lvresize -L 10G /dev/vgaze/lvaze
或lvresize -L -30g /dev/vgaze/lvaze
Step 5 挂载分区
mount /root/aze
1.4 Linux 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 <disk_dev_name> 进入交互模式,可以通过命令 m 查看帮助。首先,输入 n 创建新分区,然后选择 l 设置新分区为逻辑分区,接下来依次设置分区的起始、终止位置(默认即完全利用这块磁盘上剩余的所有空间,所以默认即可)。
以上也可以直接新增一个主分区/扩展分区
不能扩容主分区,因为原来的分区已经在使用不能格式化
格式化与使用lvm管理
把新分区的管理系统从 Linux 改为 Linux LVM,加入到现有lv。
2、Linux ext文件系统管理
2.1新建分区
- 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)
2.2 Linux ext扩容原分区:只能对最后一个分区操作(柱面末端)
检查一遍
先识别到当前最后一个分区是sdb3,然后执行
fsck -f /dev/sdb3
删除现有分区,重新分区
fdisk /dev/sdb3
- 输入d删除现有分区,注意:删除后千万不要按w保存
- 输入n创建新分区,从原有柱面开始,到最后(默认值两次回车即可,如果之前的分区不是从第一柱面开始,则需要记录之前分区的起始柱面)
- 新的分区操作完毕后,按w保存。
检查一遍
fsck -f /dev/sdb3
重新定义分区大小
resize2fs /dev/sdb3
重新挂载分区,查看分区
mount /dev/sdb3/mnt/
df -h
3、扩展
3.1 安装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
3.2 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,有变化后需要激活?
3.3 /etc/fstab内容介绍
/etc/fstab文件内容有6列:
<file system> <dir> <type> <options> <dump> <pass>
/dev/vgaze/lvaze /root/aze ext3 defaults 0 2
第一列<file system>:磁盘/LV的路径或UUID
第二列<dir>:挂载点目录
第三列<type>:磁盘文件系统的格式
第四列<options>:文件系统参数,defaults,等于rw, suid, dev, exec, auto, nouser, async。
第五列<dump>:dump utility根据此值决定是否备份,如果值为0,dump忽略此文件系统,如果是1,dump会对此系统作一个备份。大部分用户没有安装dump,所以这个值应该写为0。
第六列:是否用fsck检验文件系统完整性,值可以是0,1和2。 值为0,则不会被fsck utility检查。值为1,拥有fsck检查的最高优先级,root文件系统应该拥有最高的优先权。其它文件系统,如果想用fsck检查,则值为2。
3.4 介绍主分区与扩展分区,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分区工具。
#ThisIsAze