阅读本文你将会了解:

  • 存储管理相关
  • 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也被看作文件,他将整个计算机资源都集合成一个大的文件目录。想要访问存储设备中的文件,必须先将该设备挂载到一个目录下。
值得注意的是:

  1. 挂载点必须是一个已存在的目录。
  2. 一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。
  3. 目录不是一个真正的容器,只是存存储容器的“门”。

挂载命令
挂载使用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的意思,即文件系统表。

虚拟机安装时出现的准虚拟化scsi什么意识_操作系统

最后二位标识:是否启用备份;是否开机检测。

磁盘分区

硬盘中一般会有5个以内的多个盘片组成,下图为一个盘面的示意图。从圆心向外画线,可划为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。

虚拟机安装时出现的准虚拟化scsi什么意识_文件系统_02

硬盘0磁道1扇区记录的512个字节中记录的信息如下

466字节

64字节

2字节

mbr(主引导记录)

mpt 主分区区标

55aa 硬盘有效性标识

主分区每个主分区占16字节,也就是最大只能存在4个主分区。如果想要更多的分区,可以将一个主分分区作为容器或者说扩展分区(Extend),扩展分区只是一个逻辑上的容器,并不能直接使用。可以继续在扩展分区里面创建逻辑分区来使用。系统最多只能识别16个分区,单个分区不可超过2TB。

划分分区

虚拟机安装时出现的准虚拟化scsi什么意识_linux_03

安装文件系统

文件系统是操作系统用于是磁盘或分区上的组织文件的方法。

常见的有:

虚拟机安装时出现的准虚拟化scsi什么意识_文件系统_04


做好分区的设备无法直接使用,需要对分区安装文件系统(格式化)

  • 格式化命令: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写入开机自动挂载的加密硬盘。

分区转换

虚拟机安装时出现的准虚拟化scsi什么意识_设备名_05

lvm

虚拟机安装时出现的准虚拟化scsi什么意识_磁盘分区_06


LVM是逻辑卷管理的简写。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小;当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

lvm建立

  1. 先创建物理分区
    创建逻辑分区只能在扩展分区中创建
    -t标记打上8e
  2. 把逻辑分区划为pv
    pvcreate /dev/sda
  3. 创建vg 把pv汇入vg
    vgcreate FILENAME /dev/sda5 /dev/sda6 /dev/sda7
  4. 划分出lvm
    lvcreate -n LV1 -L 3G FILENAME
    lvcreate -n LV2 -l 100% FILENAME
  5. 指定文件系统
    mkfs.ext4 /dev/FILENAME/LV1
    mkfs.ext4 /dev/FILENAME/LV2
  6. 挂载
    mount
    VIM /etc/fstab

逻辑分区-pv-vg-lv的关系可以用下图示意

虚拟机安装时出现的准虚拟化scsi什么意识_磁盘分区_07

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 (先卸载)