阅读本文你将会了解:
- 存储管理相关
- lvm
- 如何在linux系统中搭建http服务
- Http协议文件系统
磁盘挂载
设备名称
- /dev/sda/sda1
dev:device 设备
sd:sata disk sata型硬盘
a:one 第一个硬盘
1:第一个分区 - /dev/mapper/ or /dev/vdb
虚拟设备 - /dev/sr0
光驱设备
查看存储情况的命令
命令 | 用途 |
blkid | 查看正在使用的设备及uuid |
fdisk -l | 分区命令 ; -l表示查看当前真实存在的设备 |
df | 查看正在挂载的设备的磁盘使用情况 |
挂载
在window挂载通常是指给磁盘分区(包括被虚拟出来的磁盘分区)分配一个盘符。我们回忆下win10电脑插入u盘后,“我的电脑里会新分配出一个盘符”
而在linux中,挂载是一个常用且重要的功能。liunx系统万事万物接文件,device也被看作文件,他将整个计算机资源都集合成一个大的文件目录。想要访问存储设备中的文件,必须先将该设备挂载到一个目录下。
值得注意的是:
- 挂载点必须是一个已存在的目录。
- 一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。
- 目录不是一个真正的容器,只是存存储容器的“门”。
挂载命令
挂载使用mount命令。
卸载使用umount命令
- umount: xxx: device is busy的情况
说明可能还有进程在运行 可以使用lsof或者fuser -mv +挂载点查看正在运行的进程 然后用kill -9 进程号命令取干掉进程再来卸载 - 挂载点的权限和设备有关系,修改挂载点权限后挂载了新设备,权限会变动。所以要先挂载再修改权限
格式:mount [-参数] [设备名称] [挂载点]
参数 | 作用 |
无参 | 把设备挂载到挂载点 |
-o | 表示可以在后面添加选项命令 |
-o ro | 只读挂载 |
-o remount ,rw | 重新只读挂载 |
-o | 进行配额 |
-t | 指定文件系统类型 |
mount的挂载在重启后就会重置状态,想要永久挂载可以修改文件来实现: vim /etc/fstab
fstab是file system table的意思,即文件系统表。
最后二位标识:是否启用备份;是否开机检测。
磁盘分区
硬盘中一般会有5个以内的多个盘片组成,下图为一个盘面的示意图。从圆心向外画线,可划为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。
硬盘0磁道1扇区记录的512个字节中记录的信息如下
466字节 | 64字节 | 2字节 |
mbr(主引导记录) | mpt 主分区区标 | 55aa 硬盘有效性标识 |
主分区每个主分区占16字节,也就是最大只能存在4个主分区。如果想要更多的分区,可以将一个主分分区作为容器或者说扩展分区(Extend),扩展分区只是一个逻辑上的容器,并不能直接使用。可以继续在扩展分区里面创建逻辑分区来使用。系统最多只能识别16个分区,单个分区不可超过2TB。
划分分区
安装文件系统
文件系统是操作系统用于是磁盘或分区上的组织文件的方法。
常见的有:
做好分区的设备无法直接使用,需要对分区安装文件系统(格式化)
- 格式化命令:mkfs.某某类型 /dev/sda/sda1
swap分区
Swap分区即交换分区;
在系统的运行内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中。
分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错误。
- 创建swap分区,在fdisk→t给分区打上82标识
- 做完分区表可能会显示分区busy,需用partprobe更新内核信息
- 格式化swap分区使用命令 mkswap /路径
- 激活swap分区:swapon -a /路径 【swap分区不需要挂载只需要激活,永久激活类似永久挂载的操作】
- 相对的 swapoff是关闭的命令
用户配额
对指定磁盘的储存限制:
管理员可以为不同用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。
做用户配额需要首先要激活配额,在设备挂载时添加参数 -o usrquota
而设定配额用命令:edqueta -u 用户 /设备路径 然后直接在里面输入软限或硬限。
注意:做配额可能需要一定权限;想要永久配额也是在/etc/fstble下修改 在defaults后加,usrquota
磁盘加密
首先需要确认加密逻辑:磁盘加密应该在做文件系统之下。
如果在文件系统之上,破坏加密系统,还是会被取得文件系统里的文件。但是如果在文件系统之下呢,加密层相当于一个翻译,破坏加密系统就无法取得原文件了。
做法如下
【crypt词根:密穴 setup:安设】
- 在挂载前对容器进行加密:
cryptsetup luksFormat /路径
YES
*。。。。。 - 此时设备处于加密状态,无法直接挂载,需要创建关联的设备。
cryptsetup open /dev/sdb1 diskc 路径 新设备名字
这时候 /dev/mapper/下就会出现一个新设备diskc就是我们的加密硬盘 - 然后重新对diskc格式化,就实现了先加密再格式的加密逻辑。
- 相对的关闭挂载的命令是 cryptsetup close 设备名称
- 这种加密其实对性能造成了占用。
- 开机加密:这种加密需要输入密码。
首先在/etc/crypttab写入名称 /设备路径 /密码文件路径
然后创建密码文档。
密码文档要和真实设备路径关联
先给权限 chmod 600,然后命令cryptsetup luksAddKey /设备路径 /密码文档路径
最后后在/etc/fstab写入开机自动挂载的加密硬盘。
分区转换
lvm
LVM是逻辑卷管理的简写。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小;当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
lvm建立
- 先创建物理分区
创建逻辑分区只能在扩展分区中创建
-t标记打上8e - 把逻辑分区划为pv
pvcreate /dev/sda - 创建vg 把pv汇入vg
vgcreate FILENAME /dev/sda5 /dev/sda6 /dev/sda7 - 划分出lvm
lvcreate -n LV1 -L 3G FILENAME
lvcreate -n LV2 -l 100% FILENAME - 指定文件系统
mkfs.ext4 /dev/FILENAME/LV1
mkfs.ext4 /dev/FILENAME/LV2 - 挂载
mount
VIM /etc/fstab
逻辑分区-pv-vg-lv的关系可以用下图示意
lvm的拉伸和放缩
- 拉伸
先拉伸lvm lvextend -L +2G /dev/FILENAME/lv
df -h发现并没有真正的扩容
需要同步文件系统
xfs_grow /dev/FILENAME/lv----xfs文件系统
resize2fs /dev/FILENAME/lv—ext4文件系统 - 放缩
首先xfs文件系统不支持缩减,可以在一开始做出ext4文件系统
其次缩减不支持在线缩减,需要先卸载mount
然后操作文件系统 resize2fs /dev/FILENAME/lv 500m 来缩减500大小
最后在重新挂载lvm之后lvreduce -L 500m /dev/FILENAME/lv 对lv缩容 - vg扩容
加一个新pv vgextend FILENAME /pv地址 - vg缩容
先使用pvmove /pv1 /pv2 把pv1的内容移动到pv2
然后vgreduce pv1 /pv1移除pv1
lvm快照
一个正常的lv0取消挂载后创建快照
lvcreate -L 20m【更改值大小】-n LVkuaizhao -s /dev/vg0/lv00
lv00挂载到lv0的挂载点
操作后删,取消挂载,移除lv回到初始状态
lvm移除
pvremove
vgremove
lvremove (先卸载)