一.存储基础知识

从工作原理区分:

  • 机械 HDD
  • 固态 SSD

SSD的优势:

    SSD是摒弃传统磁介质,采用电子存储介质进行数据存储和读取的一种技术,突破了传统机械硬盘的性能瓶颈,拥有极高的存储性能,被认为是存储
技术发展的未来新星。固态硬盘的全集成电路化、无任何机械运动部件的革命性设计,从根本上解决了在移动办公环境下,对于数据读写稳定性的需
求。全集成电路化设计可以让固态硬盘做成任何形状。与传统硬盘相比,SSD固态电子盘具有以下优点:
第一,SSD不需要机械结构,完全的半导体化,不存在数据查找时间、延迟时间和磁盘寻道时间,数据存取速度快。
第二,SSD全部采用闪存芯片,经久耐用,防震抗摔,即使发生与硬物碰撞,数据丢失的可能性也能够降到最小。
第三,得益于无机械部件及FLASH闪存芯片,SSD没有任何噪音,功耗低。
第四,质量轻,比常规1.8英寸硬盘重量轻20-30克,使得便携设备搭载多块SSD成为可能。同时因其完全半导体化,无结构限制,可根据实际情况
设计成各种不同接口、形状的特殊电子硬盘。

从磁盘尺寸区分:

3.5 2.5 1.8

从插拔方式区分:

  • 热插拔
  • 非热插拔

从硬盘主要接口区分:

  • IDE —— SATA I/II/II 个人计算机
  • SCSI —— SAS 服务器
  • FC
  • PCIE

从存储连接方式区分:

  • 本地存储:例如DellR730本地磁盘
  • 外部存储:scsi线、stat线、sas线、FC线
  • 网络存储:以太网络、FC网络

从kernel对不同接口硬盘命名方式:

OS		IDE(并口)	    SATA(串口)		      SCSI
RHEL5     /dev/hda     /dev/sda /dev/sda
RHEL6     /dev/sda     /dev/sda /dev/sda
RHEL7     /dev/sda     /dev/sda /dev/sda
KVM     /dev/vda(半虚拟化驱动)
         /dev/sda(全虚拟化驱动)

从分区方式区分:

存储大小			分区软件		分区表
2TB以下的硬盘 fdisk/parted/ MSDOS(MBR)
2TB以上的硬盘 parted GPT
注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!

MSDOS(MBR)分区的限制:

主引导分区(Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区。

MBR(512字节)=446字节(存放grub指针)+64字节(分区表)+2字节(校验位)

主分区,扩展分区,逻辑分区

只支持4个主分区,总分区数不能超过15个

只支持2TB以下的硬盘

GPT的限制:

没有限制

HP服务器硬盘:

/dev/cciss/c0d0
/dev/cciss/c0d0p1 //c0第一个控制器, d0第一块磁盘, p1分区1
/dev/cciss/c0d0p2 //c0第一个控制器, d0第一块磁盘, p2分区2

文件系统与数据资料:

Ext3:文件系统最大16TB,单个文件最大2TB

Ext4:文件系统最大16TB,单个文件最大16TB

XFS:

Ext3:是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。  然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百地保证资料不会丢失。它会把整个磁盘  的每个写入动作的细节都预先记录下来,以便在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复。

Ext4:Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),  且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。

XFS:是一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,  即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存  储容量为18EB,这几乎满足了所有需求。

二.磁盘分区

2.1 磁盘管理相关命令

2.1.1 fdisk 分区工具

fdisk是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。

  • 语法:

    fdisk [必要参数][选择参数]
  • 必要参数:

    -l 列出素所有分区表
    -u 与"-l"搭配使用,显示分区数目
  • 选择参数:

    -s<分区编号> 指定分区
    -v 版本信息
  • 菜单操作说明:

    a   toggle a bootable flag                  --设置启动分区
    b edit bsd disklabel --编辑分区标签
    d delete a partition --删除一个分区
    l list known partition types --列出分区类型
    m print this menu --帮助
    n add a new partition --建立一个新的分区
    o create a new empty DOS partition table --创建一个新的空白DOS分区表
    p print the partition table --打印分区表
    q quit without saving changes --退出不保存设置
    t changea partition's system id --改变分区的类型
    u changedisplay/entry units --改变显示的单位
    v verifythe partition table --检查验证分区表
    w write table to disk and exit --保存分区表
  • 示例

    显示当前分区情况:

# fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1305 10377990 8e Linux LVM Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

显示SCSI硬盘的每个分区情况:


# fdisk -lu Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System
/dev/sda1 * 63 208844 104391 83 Linux
/dev/sda2 208845 20964824 10377990 8e Linux LVM Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders, total 10485760 sectors
Units = sectors of 1 * 512 = 512 bytes

2.1.2 lsblk 查看块设备

lsblk用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等。

  • 选项:

    -a, --all            显示所有设备。
    -b, --bytes 以bytes方式显示设备大小。
    -d, --nodeps 不显示 slaves 或 holders。
    -D, --discard print discard capabilities。
    -e, --exclude <list> 排除设备 (default: RAM disks)。
    -f, --fs 显示文件系统信息。
    -h, --help 显示帮助信息。
    -i, --ascii use ascii characters only。
    -m, --perms 显示权限信息。
    -l, --list 使用列表格式显示。
    -n, --noheadings 不显示标题。
    -o, --output <list> 输出列。
    -P, --pairs 使用key="value"格式显示。
    -r, --raw 使用原始格式显示。
    -t, --topology 显示拓扑结构信息。
  • 示例

    [root@centos7-1 ~]# lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sr0 11:0 1 1024M 0 rom
    vda 252:0 0 10G 0 disk
    ├─vda1 252:1 0 500M 0 part /boot
    └─vda2 252:2 0 9.5G 0 part
    ├─cl-root 253:0 0 9G 0 lvm /
    └─cl-swap 253:1 0 500M 0 lvm [SWAP] NAME:这是块设备名。
    MAJ:MIN:本栏显示主要和次要设备号。
    RM:本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
    SIZE:本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
    RO:该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
    TYPE:本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。
    MOUNTPOINT:本栏指出设备挂载的挂载点。

2.1.3 partprobe 刷新授权表

partprobe命令用于重读分区表,当出现删除文件后,出现仍然占用空间。可以partprobe在不重启的情况下重读分区。

  • 选项:

    -d:不更新内核;
    -s:显示摘要和分区;
    -h:显示帮助信息;
    -v:显示版本信息。
  • 示例:

1、添加新的磁盘分区
[root@localhost ~]# fdisk /dev/sda
The number of cylinders for this disk is set to 38770.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of lilo)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK) command (m for help): p Disk /dev/sda: 318.9 GB, 318901321728 bytes
255 heads, 63 sectors/track, 38770 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks id System
/dev/sda1 * 1 3824 30716248+ 83 Linux
/dev/sda2 3825 7648 30716280 83 Linux
/dev/sda3 7649 8668 8193150 82 Linux swap / Solaris Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Selected partition 4
First cylinder (8669-38770, default 8669):
Using default value 8669
last cylinder or +size or +sizeM or +sizeK (8669-38770, default 38770): +100G
Command (m for help): w
The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks. 2、 使用工具partprobe让kernel读取分区信息
[root@localhost ~]# partprobe
使用fdisk工具只是将分区信息写到磁盘,如果需要mkfs磁盘分区则需要重启系统,而使用partprobe则可以使kernel重新读取分区信息,从而避免重启系统。 3、格式化文件系统
[root@localhost ~]# mkfs.ext3 /dev/sda4
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
12222464 inodes, 24416791 blocks
1220839 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
746 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,
    2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# 4、 mount新的分区/dev/sda4
[root@localhost ~]# e2label /dev/sda4 /data
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sda4 /data
[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 29753556 3810844 24406900 14% /
/dev/sda2 29753588 11304616 16913160 41% /oracle
tmpfs 2023936 0 2023936 0% /dev/shm
/dev/sda4 96132968 192312 91057300 1% /data

2.1.4 blkid 查看设备UUID

在Linux下可以使用blkid命令对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。

  • 示例:

    # blkid /dev/sda3
    /dev/sda3: UUID="3bca1b81-1339-4345-9df4-9c25ec00a60b" TYPE="swap"

2.2 磁盘分区示例

分区步骤:

  • 1、需要有一块硬盘
  • 2、使用分区工具对硬盘进行分区(fdisk)
  • 3、格式化分区
  • 4、挂载使用
  1. 进入分区表 新建分区
  2. 更新分区表(刷新分区表)
  3. 格式化
  4. 挂载

第1步:我们首先使用fdisk命令来尝试管理/dev/vdb硬盘设备。在看到提示信息后输入参数p来查看硬盘设备内已有的分区信息,其中包括了硬盘的容量大小、扇区个数等信息:

[root@centos7-1 ~]# fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 Device does not contain a recognized partition table
使用磁盘标识符 0xf24ceedc 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):p 磁盘 /dev/vdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf24ceedc 设备 Boot Start End Blocks Id System 命令(输入 m 获取帮助):

第2步:输入参数n尝试添加新的分区。系统会要求您是选择继续输入参数p来创建主分区,还是输入参数e来创建扩展分区。这里输入参数p来创建一个主分区:

命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p

第3步:在确认创建一个主分区后,系统要求您先输入主分区的编号。我们在前文得知,主分区的编号范围是1~4,因此这里输入默认的1就可以了。接下来系统会提示定义起始的扇区位置,这不需要改动,我们敲击回车键保留默认设置即可,系统会自动计算出最靠前的空闲扇区的位置。最后,系统会要求定义分区的结束扇区位置,这其实就是要去定义整个分区的大小是多少。我们不用去计算扇区的个数,只需要输入+2G即可创建出一个容量为2GB的硬盘分区。

分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):此处敲击回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB

第4步:再次使用参数p来查看硬盘设备中的分区信息。果然就能看到一个名称为/dev/vdb1、起始扇区位置为2048、结束扇区位置为4196351的主分区了。这时候千万不要直接关闭窗口,而应该敲击参数w后回车,这样分区信息才是真正的写入成功啦。

命令(输入 m 获取帮助):p

磁盘 /dev/vdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xf24ceedc 设备 Boot Start End Blocks Id System
/dev/vdb1 2048 4196351 2097152 83 Linux 命令(输入 m 获取帮助):w
The partition table has been altered! Calling ioctl() to re-read partition table.
正在同步磁盘。

第5步:在上述步骤执行完毕之后,Linux系统会自动把这个硬盘主分区抽象成/dev/vdb1设备文件。我们可以使用file命令查看该文件的属性,有些时候系统并没有自动把分区信息同步给Linux内核,而且这种情况似乎还比较常见(但不能算作是严重的bug)。我们可以输入partprobe命令手动将分区信息同步到内核,而且一般推荐连续两次执行该命令,效果会更好。如果使用这个命令都无法解决问题,那么就重启计算机吧,这个杀手锏百试百灵,一定会有用的。

[root@centos7-1 ~]# partprobe
[root@centos7-1 ~]# partprobe
[root@centos7-1 ~]# file /dev/vdb1
/dev/vdb1: block special

第6步:格式化,如果硬件存储设备没有进行格式化,则Linux系统无法得知怎么在其上写入数据。因此,在对存储设备进行分区后还需要进行格式化操作。在Linux系统中用于格式化操作的命令是mkfs。这条命令很有意思,因为在Shell终端中输入mkfs名后再敲击两下用于补齐命令的Tab键,会有如下所示的效果

[root@centos7-1 ~]# mkfs
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat

对!这个mkfs命令很贴心地把常用的文件系统名称用后缀的方式保存成了多个命令文件,用起来也非常简单—mkfs.文件类型名称。例如要格式分区为XFS的文件系统,则命令应为mkfs.xfs /dev/sdb1。

[root@centos7-1 ~]# mkfs.xfs /dev/vdb1
meta-data=/dev/vdb1 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

第7步:挂载,完成了存储设备的分区和格式化操作,接下来就是要来挂载并使用存储设备了。与之相关的步骤也非常简单:首先是创建一个用于挂载设备的挂载点目录;然后使用mount命令将存储设备与挂载点进行关联;最后使用df -h命令来查看挂载状态和硬盘使用量信息。

[root@centos7-1 ~]# mkdir /newFS
[root@centos7-1 ~]# mount /dev/vdb1 /newFS/
[root@centos7-1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 9.1G 3.7G 5.4G 41% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 497M 124K 497M 1% /dev/shm
tmpfs 497M 14M 484M 3% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/vda1 497M 166M 332M 34% /boot
tmpfs 100M 8.0K 100M 1% /run/user/42
tmpfs 100M 16K 100M 1% /run/user/0
/dev/vdb1 2.0G 33M 2.0G 2% /newFS[![复制代码](https://common.cnblogs.com/images/copycode.gif)](javascript:void(0);

开机自动挂载,通过UUID挂载,blkid 查看设备的UUID

[root@centos7-1 ~]# blkid /dev/vdb1
/dev/vdb1: UUID="a9c72628-f6b1-4feb-bdfb-9fa456d119bb" TYPE="xfs"
[root@centos7-1 ~]# vim /etc/fstab
UUID=a9c72628-f6b1-4feb-bdfb-9fa456d119bb /newFS xfs defaults 0 0

三.磁盘挂载与卸载

  • 单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
  • 单一目录不应该重复挂载多个文件系统;
  • 要作为挂载点的目录,理论上应该都是空目录才是。

如果你要用来挂载的目录里面并不是空的,那么挂载了文件系统之后,原目录下的东西就会暂时的消失。 举个例子来说,假设你的 /home 原本与根目录 (/) 在同一个文件系统中,底下原本就有 /home/test 与 /home/vbird 两个目录。然后你想要加入新的硬盘,并且直接挂载 /home 底下,那么当你挂载上新的分割槽时,则 /home 目录显示的是新分割槽内的数据,至于原先的 test 与 vbird 这两个目录就会暂时的被隐藏掉了!注意:并不是被覆盖掉, 而是暂时的隐藏了起来,等到新分割槽被卸除之后,则 /home 原本的内容就会再次的跑出来啦!

  • 格式:

    mount [-t 文件系统]  [-o 额外选项]  装置文件名  挂载点
  • 参数:

    选项与参数:
    -a :依照配置文件 /etc/fstab 的数据将所有未挂载的磁盘都挂载上来
    -l :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称!
    -t :与 mkfs 的选项非常类似的,可以加上文件系统种类来指定欲挂载的类型。
    常见的 Linux 支持类型有:ext2, ext3, vfat, reiserfs, iso9660(光盘格式),
    nfs, cifs, smbfs(此三种为网络文件系统类型)
    -n :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序
    的运行。但在某些情况下(例如单人维护模式)为了避免问题,会刻意不写入。
    此时就得要使用这个 -n 的选项了。
    -L :系统除了利用装置文件名 (例如 /dev/hdc6) 之外,还可以利用文件系统的标头名称
    (Label)来进行挂载。最好为你的文件系统取一个独一无二的名称吧!
    -o :后面可以接一些挂载时额外加上的参数!比方说账号、密码、读写权限等:
    rw 读写
    ro 只读
    suid 支持suid
    dev 支持设备文件
    nodev 不支持设备文件
    noexec 不允许执行二进制文件
    exec 允许执行二进制文件
    auto mount -a 开机自动挂载
    noauto mount -a 开机不自动挂载
    async 异步写入
    sync 同步同入
    noatime 不更新访问时间atime
    usrquota 支持用户级磁盘配额功能
    grpquota 支持组级磁盘配额功能
    acl 支持acl功能
    remount 在线重新挂载
    pri 指定优先级
  • 示例

    mount -t ext4 -o acl /dev/sdb1 /mnt/disk1
    文件系统类型:ext4,xfs,nfs,cifs,iso9660,loop

3.1 挂载IOS文件

[root@centos7-1 ~]# mount -o loop /data/CentOS-7.3-x86_64-DVD-1611.iso /ios/
[root@centos7-1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 202G 34G 169G 17% /
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.8G 12M 1.7G 1% /dev/shm
tmpfs 1.8G 26M 1.7G 2% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/sda1 794M 179M 616M 23% /boot
/dev/mapper/centos-opt 200G 85M 200G 1% /opt
/dev/mapper/centos-home 51G 37M 51G 1% /home
tmpfs 349M 36K 349M 1% /run/user/0
/dev/loop0 4.1G 4.1G 0 100% /ios

3.2 开机自动挂载

/etc/fstab

格式说明:

要挂载的资源路径    挂载点    资源类型    挂载选项    dump备份支持  文件系统检测
/dev/vda1 / ext4 defaults 1 1
1段:挂载的设备(磁盘设备的文件名或设备的卷标或者是设备的UUID)
2段:挂载点(建议用一个空目录)
3段:文件系统类型(ext3、ext4、vfat、ntfs、swap等等)
4段:文件系统选项(fs mntops)在装载文件系统时使用的装载选项
5段:是否支持dump备份。0代表不要做dump备份,1代表要每天进行dump的动作,2也代表其他不定日期的dump备份。数字越小优先级越高。
6段:是否用 fsck 检验扇区。#开机的过程中,系统默认会用fsck检验文件系统是否完整。0是不要检验,1表示最先检验(一般只有根目录会设定为1)
[root@centos7-1 ~]# cat /etc/fstab
...
需要挂载的设备 挂载点 文件类型
/dev/mapper/cl-root / xfs defaults 0 0
/dev/mapper/cl-swap swap swap defaults 0 0
  • 示例:

    [root@centos7-1 ~]# blkid /dev/vdb1
    /dev/vdb1: UUID="a9c72628-f6b1-4feb-bdfb-9fa456d119bb" TYPE="xfs"
    [root@centos7-1 ~]# vim /etc/fstab
    UUID=a9c72628-f6b1-4feb-bdfb-9fa456d119bb /newFS xfs defaults 0 0

3.3 Automount 自动挂载

3.3.1 本地挂载

  • 挂载是由访问产生的:设置开机不一定要挂载的目录,当用的时候才实现自动挂载。
  • 卸载是由超时产生的:用户不使用自动挂载的目录一段的时间,会自动卸载。(默认时间为5分钟)

autofs ----自动挂载的软件

[root@centos7-1 ~]# rpm -q autofs
autofs-5.0.7-56.el7.x86_64

配置文件:

/etc/auto.master        主配置文件
/etc/auto.misc 子配置文件/etc/sysconfig/autofs 额外配置文件
/usr/sbin/automount 二进制命令

示例:

通过autofs 自动挂载本地设备 /dev/vdb1 到 /fs 目录

第1步:修改主配置文件,定义一级挂载点以及子配置文件, --timeout=20 设置超时时间为20秒。20秒如果没有访问,自动卸载

[root@centos7-1 ~]# vim /etc/auto.master
/- /etc/auto.fs --timeout=20

第2步:创建子配置文件,并定义二级挂载点

[root@centos7-1 ~]# vim /etc/auto.fs
/fs -fstype=xfs,rw :/dev/vdb1

一级二级挂载点说明:将/dev/vda1 挂载到/u01/vd1目录下,那么一级挂载点就是/dev、二级挂载点就是vd1

如果单独只有一级目录,那么auto.master里面写/-

第3步:启动服务并查看状态

[root@centos7-1 ~]# systemctl start autofs
[root@centos7-1 ~]# systemctl status autofs

第4步:测试验证

[root@centos7-1 ~]# df -h                // 可以查看到没有进行使用,虽然启动了服务,但是还是没有挂载
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 9.1G 3.7G 5.4G 41% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 497M 124K 497M 1% /dev/shm
tmpfs 497M 14M 484M 3% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/vda1 497M 166M 332M 34% /boot
tmpfs 100M 8.0K 100M 1% /run/user/42
tmpfs 100M 16K 100M 1% /run/user/0 [root@centos7-1 ~]# cd /fs/ // 一旦挂载点进行了使用,再次查看,就自动挂载上了
[root@centos7-1 fs]# ls
[root@centos7-1 fs]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 9.1G 3.7G 5.4G 41% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 497M 124K 497M 1% /dev/shm
tmpfs 497M 14M 484M 3% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/vda1 497M 166M 332M 34% /boot
tmpfs 100M 8.0K 100M 1% /run/user/42
tmpfs 100M 16K 100M 1% /run/user/0
/dev/vdb1 2.0G 33M 2.0G 2% /fs [root@centos7-1 ~]# date // 测试超时是否自动卸载
2018年 11月 09日 星期五 16:21:19 CST
[root@centos7-1 ~]# date
2018年 11月 09日 星期五 16:21:51 CST
[root@centos7-1 ~]# df -h // 时间超过了20秒后查看,已自动卸载
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 9.1G 3.7G 5.4G 41% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 497M 124K 497M 1% /dev/shm
tmpfs 497M 14M 484M 3% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/vda1 497M 166M 332M 34% /boot
tmpfs 100M 8.0K 100M 1% /run/user/42
tmpfs 100M 16K 100M 1% /run/user/0

3.3.2 远程挂载 NFS

要求:将NFS服务器上的/home/dir1和/home/dir2目录分别挂载 到 挂载服务器的/nfs-server/dir1和/nfs-server/dir2上

NFS服务器:192.168.122.228

简单准备共享目录

[root@centos7-2 ~]# mkdir /home/dir{1,2}    
[root@centos7-2 ~]# vim /etc/exports
/home/dir1 *(rw,sync,no_root_squash)
/home/dir2 *(rw,sync,no_root_squash)
[root@centos7-2 ~]# systemctl restart nfs-server.service
[root@centos7-2 ~]# systemctl status nfs-server.service

挂载服务器:192.168.122.205

第1步:查看nfs服务器共享的目录

[root@centos7-1 ~]# showmount -e 192.168.122.228
Export list for 192.168.122.228:
/home/dir2 *
/home/dir1 *

手动挂载示例:

[root@centos7-1 ~]# mount -t nfs 192.168.122.228:/home/dir1 /nfs-server/dir1
[root@centos7-1 ~]# mount -t nfs 192.168.122.228:/home/dir2 /nfs-server/dir2
[root@centos7-1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 9.1G 3.7G 5.4G 41% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 497M 124K 497M 1% /dev/shm
tmpfs 497M 14M 484M 3% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/vda1 497M 166M 332M 34% /boot
tmpfs 100M 8.0K 100M 1% /run/user/42
tmpfs 100M 16K 100M 1% /run/user/0
192.168.122.228:/home/dir1 9.1G 3.7G 5.4G 41% /nfs-server/dir1
192.168.122.228:/home/dir2 9.1G 3.7G 5.4G 41% /nfs-server/dir2

开机自动挂载示例:

[root@centos7-1 ~]# vim /etc/fstab
192.168.122.228:/home/dir1 /nfs-server/dir1 xfs defaults 0 0
192.168.122.228:/home/dir2 /nfs-server/dir2 xfs defaults 0 0
优点:可以实现开机自动挂载
缺点:由于网络连接的不稳定性,会导致网络设备挂载失败
结论:适合挂载本地设备和持续使用的设备

第2步:修改主配置文件;定义一级挂载点以及子配置文件

[root@centos7-1 ~]# vim /etc/auto.master
/- /etc/auto.nfs --timeout=60

第3步:创建子配置文件

[root@centos7-1 ~]# vim /etc/auto.nfs
/dir1 rw 192.168.122.228:/home/dir1
/dir2 rw 192.168.122.228:/home/dir2

第4步:启动服务

[root@centos7-1 ~]# systemctl start autofs
[root@centos7-1 ~]# systemctl status autofs

第5步:测试验证

[root@centos7-1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 9.1G 3.7G 5.4G 41% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 497M 124K 497M 1% /dev/shm
tmpfs 497M 14M 484M 3% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/vda1 497M 166M 332M 34% /boot
tmpfs 100M 8.0K 100M 1% /run/user/42
tmpfs 100M 16K 100M 1% /run/user/0 [root@centos7-1 ~]# cd /dir1
[root@centos7-1 dir1]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 9.1G 3.7G 5.4G 41% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 497M 124K 497M 1% /dev/shm
tmpfs 497M 14M 484M 3% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/vda1 497M 166M 332M 34% /boot
tmpfs 100M 8.0K 100M 1% /run/user/42
tmpfs 100M 16K 100M 1% /run/user/0
192.168.122.228:/home/dir1 9.1G 3.7G 5.4G 41% /dir1 [root@centos7-1 dir1]# cd /dir2
[root@centos7-1 dir2]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 9.1G 3.7G 5.4G 41% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 497M 124K 497M 1% /dev/shm
tmpfs 497M 14M 484M 3% /run
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/vda1 497M 166M 332M 34% /boot
tmpfs 100M 8.0K 100M 1% /run/user/42
tmpfs 100M 16K 100M 1% /run/user/0
192.168.122.228:/home/dir2 9.1G 3.7G 5.4G 41% /dir2

Linux存储管理的更多相关文章

  1. [Linux 存储管理] LVM结构

    linux的LVM灵活且功能强大,当然越强大的就越难理解.lvm和硬盘大致关系应该如下,如果有误请大家左证. lvm中快照功能强大到,很多db的备份都依赖于这个功能,所以不能不理解和熟悉. <鸟 ...

  2. linux存储管理之文件系统

    EXT3/4文件系统 ====================================================================================Ext3: ...

  3. linux存储管理之mount挂载

    Mount 挂载详解 ====================================================================================本节内容: ...

  4. linux存储管理之磁盘阵列

    磁盘阵列 RAID ====================================================================================RAID:廉 ...

  5. linux存储管理之自动挂在

    自动挂载 Automount ==================================================================================== ...

  6. linux存储管理之磁盘配额

    磁盘配额 1  相关命令:quota.quotacheck.edquota.quotaon.quotaoffquota要使用的命令有两种:一种用于查询功能,包括quota.quotacheck.quo ...

  7. linux存储管理之交换分区

    交换分区管理 Swap ====================================================================================作用: ...

  8. linux存储管理之逻辑卷

    LVM管理 ====================================================================================创建LVMVG扩展/ ...

  9. linux存储管理之基本分区

    基本分区管理 ====================================================================================基本分区(MBR| ...

随机推荐

  1. uni-app聊天室|vue+uniapp仿微信聊天实例|uniapp仿微信App界面

    一.介绍 运用UniApp+Vue+Vuex+swiper+uniPop等技术开发的仿微信原生App聊天室|仿微信聊天界面实例项目uniapp-chatroom,实现了发送图文消息.表情(gif图), ...

  2. JavaScript获取Django模板中指定键值的数据,使用过滤器

    Django中利用js来操作数据的常规操作一般为点(.)操作符来获取字典或列表的数据,一般如{{data.0}},{{data.arg}} 但有时如果数据是嵌套类型的数据时,直接获取某个值就变得困难了 ...

  3. layer重复弹出(layui弹层同时存在多个)的解决方法

    layer.open() 同时存在多个;解决 layui 弹层 layer 同时存在多个页面层(iframe)的问题 这个问题其实是疏忽了一些 基础参数(仔细看文档,仔细看文档,仔细看文档) 一.ty ...

  4. zabbix入门

    第一章 监控知识基本概述 1.1 为什么要使用监控 1.对系统不间断实时监控2.实时反馈系统当前状态3.保证服务可靠性安全性4.保证业务持续稳定运行 1.2 如何进行监控,比如我们需要监控磁盘的使用率 ...

  5. 5-2可视化库Seaborn-调色板

    In [1]: import numpy as np import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline ...

  6. equals和==的应用场景

    今天我知道了 抽象类主要作为多个类的模板,接口则定义了多个类应该遵守的规范. "=="比"equals"运行速度快,因为"=="只是比较引用 ...

  7. ffmpeg下载m3u8流媒体

    安装 编译好的windows可用版本的下载地址(官网中可以连接到这个网站,和官方网站保持同步): http://ffmpeg.zeranoe.com/builds/ 该版本为FFMPEG的Static ...

  8. 批量文件B中选出部分文件(与A文件夹数量相同),放到C中

    import glob import os,sys import shutil fileDir = 'F:/project/Breast/InBreast/INBreast/outimgpatch/n ...

  9. 【转】springboot结合swagger生成接口文档

    前后台分离的开发渐渐已成趋势.那么前后端的沟通就成了问题,包括移动端,web端.如果有一个东西在我们写完代码的时候,自动将接口的所有注释,调用文档提供出来,是不是一件很美好的事情.那就是使用swagg ...

  10. Ubuntu16.04下安装Cmake-3.8.2并为其配置环境变量

    下载安装包 首先我们到官网下载最新的cmake二进制安装包https://cmake.org/files/ 这里,我下载的是比较新的cmake-3.8.2-Linux-x86_64.tar.gz解压安 ...