linux学习日记之磁盘的管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux学习日记之磁盘的管理相关的知识,希望对你有一定的参考价值。
1.本地存储设备的识别
fdisk -l 真实存在的设备
cat /proc/partition 系统识别的设备
blkid 系统可以使用的设备
df 查看系统正在挂载的设备
2.设备的挂载和卸载
/dev/xdx 设备名称
/dev/sr0 光驱 (光驱可以通过eject命令弹出)
/dev/mapper/ 虚拟设备
mount(umount) /dev/hd0/ /mnt 挂载(卸载)/dev/hd0 到/mnt下
3.磁盘的分区
分区就是将一块硬盘,无论是什么格式的,把它的空间分为几块,这样能更有效,高效的使用硬盘。
磁盘分区是在磁盘上划分几个逻辑部分,盘片一旦划分成数个分区,不同类的目录与文件可以存储进不同的分区。可以将文件的性质区分得更细,按照更为细分的性质,存储在不同的地方以管理文件。
用fdisk -l查看系统的磁盘使用情况,发现/dev/vdb/为空磁盘,用/dev/vdb/做实验
1)用fdisk /dev/vdb/命令对vdb进行分区
建立三个主分区
第一个主分区
其中:d表示删除;n表示新建一个分区;p表示显示分区信息;q表示不保存退出;t表示修改分区的id;w表示保存分区表到硬盘。
第二个主分区
第三个主分区
建立扩展分区(将主分区之外的空间都给扩展区分,在扩展分区中又能划分逻辑分区)
在扩展分区中建立逻辑分区
保存退出
2)分区的删除
2)给设备铺设文件系统
mkfs.xfs /dev/vdb1 给vdb1铺设xfs类型的文件系统
mount /dev/vdb1/ /mnt 挂载/dev/vdb1 到/mnt
测试是否可以使用
卸载之后所建立的文件消失,代表可以使用,文件自动保存在/dev/vdb1中,再次挂载即可卡看并使用
设置开机自动挂载
vim /etc/fstab/ 编辑/etc/fatab/文件
mount -a 用来重启/etc/fstab中的所有文件系统,同时也可以用来检测挂载是否正确,当挂载正确时,不会出现报错
测试:
重启系统前
重启系统后
如果自动挂载文件中的内容写错了,导致系统就不能正常启动了,解决方法:可先根据系统提示编辑出错的配置文件,将修改的内容注释掉,先将系统启动,之后再进行排错
4.swap分区的建立
swap分区: 在系统的物理分区内存不够用时,把物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到swap分区中,等到那些程序要运行时,在从swap分区中恢复保存的数据到内存中.通常swap分区的空间应该大于或等于物理内存的大小,最小不小于64M,通常swap分区大小为物理内存的2-2.5倍.
1)用fdisk /dev/vdb/命令建立新的分区
2)修改分区标签为82
通过t来修改分区的id
看到/dev/vdb6的id由原来的Linux改为了Linux swap / Solaris,代表swap分区已经建立好
3)mkswap /dev/vdb5 给dev/vdb6铺设文件系统
4)swapon -a /dev/vdb5 挂载swap交换分区
5)swapon -s 查看挂载信息
6)vim /etc/fstab
/dev/vdb5 swap swap defaults 0 0 设置开机自动挂载
5.swap分区的删除(同时完成卸载)
vim /etc/fstab 修改配置文件(删除swap分区的开机自动挂载命令)
swapoff /dev/vdb5 关闭swap交换空间(包括交换文件和交换分区)
swapon -s 查看swap分区的使用情况,发现swap交换分区已经关闭.
6.磁盘配额
1)新建分区并为其铺设文件系统
铺设文件系统
2)mkdir /public
chmod 777 /public
ll -d /public
3)挂载
mount -o usrquota /dev/vdb6 /public
ll -d /public
chmod 777 /public
证明文件的权限是记录在磁盘分区上的,而不是目录本身
4)对student用户进行配额
edquota -u student 对student用户进行限额配置,这里限额20M(总分区内存100M)
5)设置开机自动挂载
vim /etc/fstab 编辑/dev/vdb7自动挂载的配置文件
6)mount -a 实现/etx/fstab中所有的文件系统的挂载
7)测试:
- 磁盘加密
对磁盘加密以后,可用来保存重要的文件,当不知道密码强行打开时,磁盘内文件会损坏,安全系数较高
1)新建分区
2)加密 cryptsetup lucksFormat /dev/vdb9
3)打开
crotsetup open /dev/vdb8 xin
打开之后,会在相应目录产生相应的链接文件
4)铺设文件系统
mkfs.xfs /dev/mapper/xin
5)挂载该分区,进行测试,看该分区是否已经能够正常使用
mount /dev/mapper/xin /mnt
touch /mnt/file{1..3}
6)卸载
umount /mnt
7)cryprtsetup close xin
原来生成的链接文件消失,代表锁已关闭。
8. lvm
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
1)pv:物理卷:指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
2) vg: 物理卷组:物理卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
3) pe:物理扩展: 每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。 lvm的最小存储单元,lvm是pe的整数倍
4) lvm: 逻辑卷:类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。是可以直接使用的设备,可以增大缩小并保持原有数据不变。
lvm的建立
1.分区并设定分区格式为8e
2.监控
watch -n 1 ‘pvs;echo===;vgs;echo===;lvs;echo===;df -h /mnt‘
3.生成pv
pvcreate /dev/vdb1
3.生成vg
vgcreate vg0 /dev/vdb1
补充:
lvdisplay 可以查看lv的大小
vgdisplay 可以查看vg的大小和pe的大小
pvdispaly 可以查看pe的大小
lvs 可以用来查看lv的信息
vgs 可以用来查看vg的信息
pvs 可以用来查看pv的信息
vgcreate -s 8M vg0 /dev/vdb1 生成vg1并指定pe的大小为8M
lvcreate -l 10 lv0 vg0 指定生成的lv的大小为10个pe的大小
4.生成lv
lvcreate -L 20M -n lv0 vg0
5.为dev/vg0/lv0铺设文件系统
mkfs.xfs /dev/vg0/lv0
变成了一种虚拟设备
6.挂载/dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
7.查看挂载点的信息
df -h /mnt
可以使用,表示已经挂载好。
监控结果
8.设置开机自动挂载
编辑配置文件
lvm的拉伸
xfs文件系统的拉伸
lvm支持热拉伸(即不用卸载,直接拉伸),不支持缩减
1.当vg中的剩余容量足够时
1)lvextend -L 80M /dev/vg0/lv0 拉伸设备至80M
2)xfs_growfs /dev/vg0/lv0 拉伸文件系统,不用指定拉伸的大小,系统自动补全(大小和设备大小一样)
监控结果:
2.当vg中剩余容量不足时
1)再次建立分区并修改标签为8e
2)pvcreate /dev/vdb2 生成pv
3)vgextend vg0 /dev/vdb2 将生成的物理卷放到物理卷组vg0中
4)lvextend -L 200M /dev/vg0/lv0 拉伸设备至200M
5)xfs_growfs /dev/vg0/lv0 拉伸文件系统,不用指定拉伸的大小,系统自动补全(大小和设备大小一样)
监控结果
3.ext文件系统的拉伸和缩减
拉伸:lvextend -L 250M /dev/cg0/lv0 拉伸设备,至250M
拉伸文件系统:resize2fs /dev/vg0/lv0 拉伸文件系统,不用指定拉伸的大小,系统自动补全(大小和设备大小一样)
监控结果
缩减(不支持热缩减,须先卸载,再缩减)(缩减和拉伸正好相反:拉伸先拉伸设备,再拉伸文件系统;缩减先缩减文件系统,再缩减设备)
1)umount /dev/vg0/lv0 或者 umount /mnt
2)e2fsck -f /dev/vg0/lv0 扫描并检查
3)resize2fs /dev/vg0/lv0 80M 缩减文件系统至80M
4)lvreduce -L 80M /dev/vg0/lv0 缩减设备至80M(这里要指定缩减以后的大小)
5)monut /dev/vg0/lv0 /mnt 挂载来查看文件系统的大小是否缩减成功
监控结果
4.vg的缩减
1)当vg未使用时
vgreduce vg0 /dev/vdb2 将/dev/vdb2从vg0中移出(缩减vg)
为了完成下面的测试,需要将vg再添加进来
vgextend vg0 /dev/vdb2
2)当vg有人在使用时,要进行数据的迁移
pvmove /dev/vdb1 /dev/vdb2 将/dev/vdb1中的数据迁移到/dev/vdb2
vgreduce vg0 /dev/vdb1 将/dev/vdb1从vg0中移出(缩减vg)
pvremove /dev/vdb1 移出/dev/vdb1对应的pv
监控结果
5.lvm快照(快照的损坏不影响原设备)
1)生成lvm快照,大小为40M
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
2)挂载
mount /dev/vg0/lv0-backup /mnt
3)如果存入的数据大小大于lvm快照本身,则会损坏快照
dd if=/dev/zero of=/mnt/file bs=1M count=50M
此时,/dev/vdb1/lv0-backup会自动卸载
4)再次挂载会报错
mount /dev/vg0/lv0-backup /mnt
5)重新生成快照
lvremove /dev.vg0/lv0-backup 移除快照
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0 重新生成快照
6)lv,vg,pv以及快照的移除
lvremove /dev/vg0/lv0-backup 移除快照
lvremove /dev/vg0/lv0 移除lv0
vgremove vg0 移除vg0
pvremove /dev/vdb2 移除/dev/vdb2生成的快照
以上是关于linux学习日记之磁盘的管理的主要内容,如果未能解决你的问题,请参考以下文章