Linux服务器之磁盘精讲
-
能够使用fdisk命令对磁盘进行分区
-
熟悉设备的挂载方式(手动、开机自动、autofs自动)
-
理解物理卷、卷组、逻辑卷的概念
-
能够根据需求创建逻辑卷(重点)
-
能够根据需求动态扩容逻辑卷(重点)
-
熟练使用逻辑卷相关命令
理论储备
一、硬盘的基本知识
1.了解硬盘的接口类型
硬盘的接口类型是影响硬盘读取数据的一个因素
IDE(并口的,已经被淘汰)
SATA(串口的,现在笔记本一般用的事二代或三代) I/II/III
个人pc机 -----SCSI
SAS------服务器上
2. 硬盘命名方式
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 |
/dev/sda2
s=硬件接口类型(sata/scsi),d=disk(硬盘),a=第1块硬盘(b,第二块),2=第几个分区 /dev/hd h=IDE硬盘 /dev/hdd3 IDE硬盘的第4块硬盘第3个分区 /dev/vd v=虚拟硬盘 /dev/vdf7 虚拟硬盘的第6块硬盘第7个分区
4. HP服务器硬盘
/dev/cciss/c0d0 /dev/cciss/c0d0p1 c0第一个控制器, d0第一块磁盘, p1分区1 /dev/cciss/c0d0p2 c0第一个控制器, d0第一块磁盘, p2分区2
5. 硬盘的分区方式
MBR <2TB,也就是MBR 小于2TB使用fdisk(分区工具)进行分区,可以分为4个主分区或者3个主分区+1个扩展分区(扩展区下又可以分N个逻辑分区)
MBR(Master Boot Record)的缩写,由三部分组成,即:
-
Bootloader(主引导程序)=446字节 硬盘第一个扇区=512字节(硬盘读取数据的最小单位就是扇区)
-
引导操作系统的主程序
-
-
DPT分区表(Disk Partition Table)=64字节
-
分区表保存了硬盘的分区信息,操作系统通过读取分区表内的信息,就能够获得该硬盘的分区信息
-
每个分区需要占用16个字节大小,保存有文件系统标识、起止柱面号、磁头号、扇区号、起始扇区位置(4个字节)、分区总扇区数目(4个字节)等内容
-
分区表中保存的分区信息都是主分区与扩展分区的分区信息,扩展分区不能直接使用,需要在扩展分区内划分一个或多个逻辑分区后才能使用
-
逻辑分区的分区信息保存在扩展分区内而不是保存在MBR分区表内,这样,就可以突破MBR分区表只能保存4个分区的限制
-
-
硬盘有效标志(校验位)=2个字节
GPT>2TB gdisk(parted) 128个主分区
注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!
二、基本分区管理
1. 磁盘划分思路
-
进入分区表 新建分区 fdisk /dev/sdb
-
更新分区表<刷新分区表>
-
格式化分区——>格式化分区后产生文件系统
-
挂载使用——>mount【开机自动挂载|autofs自动挂载】
添加一个硬盘10GB
1、选中虚拟机右键设置
2、选中硬盘--添加
下一步
下一步
下一步
下一步
3、重启虚拟机
# reboot
2. fdisk分区
是一个典型的标准分区,一旦确定大小,后续很难改变。
2.1 使用fdisk分区
# lsblk
# df -h 查看正在挂载的设备情况
# fdisk -l 查看当前系统的所有设备分区情况
# fdisk /dev/sdb 可以开启分区
硬盘容量 = 柱面数 × 盘面数(磁头数) × 扇区数 × 扇区大小(一般为512字节)
Disk /dev/sda: 26.8 GB, 26843545600 bytes 磁盘空间
255 heads, 63 sectors/track, 3263 cylinders
255磁头 63个扇区 每 磁道 3263个圆柱体
Units = cylinders of 16065 * 512 = 8225280 bytes 单元
Sector size (logical/physical): 512 bytes / 512 bytes
扇区大小(逻辑/物理) 都是512字节。
I/O size (minimum/optimal): 512 bytes / 512 bytes
I/O 大小(最小/最大) 都是512字节。
Disk identifier: 0x00030124 设备识别码
启动设备加* 起始 结束 块 id 系统
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2497 20051968 83 Linux
/dev/sda2 2497 2611 916481 5 Extended 扩展分区
/dev/sda3 2612 3263 5237190 83 Linux
/dev/sda5 2497 2611 916480 82 Linux swap / Solaris
Command(m for help): m 输出帮助信息
Commandaction
a toggle a bootable flag 设置启动分区
b edit bsd disklabel 编辑分区标签
c toggle the dos compatibility flag
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 退出不保存设置
s createa new empty Sun disklabel 创建一个新的空的SUN标示
t changea partition's system id 改变分区的类型
u changedisplay/entry units 改变显示的单位
v verifythe partition table 检查验证分区表
w write table to disk and exit 保存分区表
Command (m for help): n 创建新分区
Command action
e extended 扩展分区
p primary partition (1-4) 主分区
p
Partition number (1-4): 1 选择主分区编号
First cylinder (1-1305, default 1): 起始柱面默认即可(直接回车)
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +1G 分区大小1G
Command (m for help): p 打印分区表
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x31dd29ec
Device Boot Start End Blocks Id System
/dev/sdb1 1 132 1060258+ 83 Linux
Command (m for help): n 继续创建分区
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (133-1305, default 133):
Using default value 133
Last cylinder, +cylinders or +size{K,M,G} (133-1305, default 1305): +1G
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x31dd29ec
Device Boot Start End Blocks Id System
/dev/sdb1 1 132 1060258+ 83 Linux
/dev/sdb2 133 264 1060290 83 Linux
Command (m for help): w 保存退出
The partition table has been altered!
刷新分区
[root@bogon ~]# partx -a /dev/sdb
====查看分区
[root@bogon ~]# lsblk
如果上面命令看不到分区,使用下面命令。如果可以看到重启系统,分区才可以正常使用!
[root@bogon ~]# fdisk -l /dev/sdb
总结:
-
最多只能分4个主分区,主分区编号1-4
-
逻辑分区大小总和不能超过扩展分区大小,逻辑分区分区编号从5开始
创建扩展分区,并创建逻辑分区。
逻辑分区必须在扩展分区下,且所有逻辑分区的大小必须小于扩展分区。删除扩展分区后,逻辑分区会自动删除。
# fdisk /dev/sdb 命令(输入 m 获取帮助):n 创建分区 Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): e 创建扩展分区 分区号 (3,4,默认 3):3 起始 扇区 (6293504-20971519,默认为 6293504): 直接按enter键使用默认值 将使用默认值 6293504 Last 扇区, +扇区 or +size{K,M,G} (6293504-20971519,默认为 20971519):+3G 设置分区大小 分区 3 已设置为 Extended 类型,大小设为 3 GiB 命令(输入 m 获取帮助):p 打印分区表 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xc6b3550a 设备 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux /dev/sdb2 2099200 6293503 2097152 83 Linux /dev/sdb3 6293504 12584959 3145728 5 Extended 命令(输入 m 获取帮助):n Partition type: p primary (2 primary, 1 extended, 1 free) l logical (numbered from 5) Select (default p): l l为逻辑分区 添加逻辑分区 5 起始 扇区 (6295552-12584959,默认为 6295552): 将使用默认值 6295552 Last 扇区, +扇区 or +size{K,M,G} (6295552-12584959,默认为 12584959):+2G 分区 5 已设置为 Linux 类型,大小设为 2 GiB 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xc6b3550a 设备 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux /dev/sdb2 2099200 6293503 2097152 83 Linux /dev/sdb3 6293504 12584959 3145728 5 Extended /dev/sdb5 6295552 10489855 2097152 83 Linux 命令(输入 m 获取帮助):n Partition type: p primary (2 primary, 1 extended, 1 free) l logical (numbered from 5) Select (default p): l 添加逻辑分区 6 起始 扇区 (10491904-12584959,默认为 10491904): 将使用默认值 10491904 Last 扇区, +扇区 or +size{K,M,G} (10491904-12584959,默认为 12584959):+1G 值超出范围。 ==>>>逻辑分区的总大小不能超出扩展分区。此时添加900M可以
-
如果删除扩展分区,下面的逻辑卷分区也被删除
-
扩展分区的分区编号(1-4)
任务1:
添加一块硬盘,需要将其分两个分区,分别格式化成ext4格式文件系统使用,最终需要使用2G空间。
思路:
1. 增加一块硬盘
2. 使用fdisk命令进行分区
3. 格式化指定分区
4. 创建一个空的目录作为挂载点
5. 挂载使用
步骤:
1. 增加硬盘
增加完硬盘记得重启系统
# lsblk 查看硬盘是否添加成功
...
sdb 8:16 0 10G 0 disk
[root@web ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
2. 使用fdisk命令分区
[root@web ~]# fdisk /dev/sdb
Command (m for help): p 打印分区表信息
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x31dd29ec
Device Boot Start End Blocks Id System
Command (m for help): n 创建新分区
Command action
e extended 扩展分区
p primary partition (1-4) 主分区
p
Partition number (1-4): 1 选择主分区编号
First cylinder (1-1305, default 1): 起始柱面默认即可(直接回车)
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): +1G 分区大小1G
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x31dd29ec
Device Boot Start End Blocks Id System
/dev/sdb1 1 132 1060258+ 83 Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (133-1305, default 133):
Using default value 133
Last cylinder, +cylinders or +size{K,M,G} (133-1305, default 1305): +1G
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x31dd29ec
Device Boot Start End Blocks Id System
/dev/sdb1 1 132 1060258+ 83 Linux
/dev/sdb2 133 264 1060290 83 Linux
Command (m for help): w 保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@bogon ~]# partx -a /dev/sdb ----刷新文件系统
3. 再次查看分区情况
# lsblk
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 1G 0 part
└─sdb2 8:18 0 1G 0 part
4. 刷新分区表信息。注意:如果刷新后lsblk还是看不到分区而使用fdisk -l /dev/sdb可以看到分区,则重启系统
[root@web ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
5. 格式化分区
[root@web ~]# mkfs.ext4 /dev/sdb1 ====>>mkfs.ext4 命令用于在指定的设备上创建一个ext4文件系统
[root@web ~]# mkfs.ext4 /dev/sdb2
6. 创建新的挂载点
[root@web ~]# mkdir /u01
[root@web ~]# mkdir /u02
7. 挂载使用
[root@web ~]# mount /dev/sdb1 /u01
[root@web ~]# mount /dev/sdb2 /u02
总结:
-
扩展分区的大小决定了所有逻辑分区的大小
-
删除扩展分区后下面的逻辑分区都被删除
-
分完区后需要手动刷新分区表,如果刷新不成功需要重启操作系统
-
创建分区的时候尽可能注意分区序号的连续性
2.2 挂载分区设备
注意:挂载设备有两个要求:
1、挂载点是空目录
2、一个挂载点只能挂载一个设备
查看设备现在的挂载方式
查看分区是否挂载:可以显示出来文件系统类型ext4,和读写模式--下面的rw就代表可读写
# mount
/dev/sdb1 on /u01 type ext4 (rw,relatime,data=ordered)
只显示是否挂载
# lsblk
卸载挂载
# umount 挂载点
删除分区:
1.使用fdisk进行到操作命令
[root@bogon ~]# fdisk /dev/sdb
2.选择删除选项,然后选择分区,最后保存
命令(输入 m 获取帮助):d ---------->>删除分区选项
分区号 (1,2,默认 2):2
分区 2 已删除
命令(输入 m 获取帮助):p ---------->>打印分区表
命令(输入 m 获取帮助):w ---------->>保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
3.更新分区
[root@bogon ~]# partx -a /dev/sdb
4.查看。如果依然存在,则重启。
[root@bogon ~]# lsblk
5.自行验证删除逻辑分区和删除扩展分区(删除扩展分区观察逻辑分区是否被删除!)
手动挂载:
手动挂载语法::
mount [options] 需要挂载的设备 挂载点
特点:系统重启后需要重新挂载;手动卸载后需要手动挂载
-o:挂载选项 ro(只读),sync(同步),rw(读写),remount(重新挂载,原来必须挂载过)
-t:文件系统类型
mount -t nfs
mount -t cifs
[root@MissHou ~]# mount //查看设备的挂载状态
remount:重新挂载一个正在挂载的设备
# mount -o remount,ro /dev/sdb1 //可以是挂载点也可以是设备:u02是挂载点,也可以是/dev/sdb1这是设备
# mount -o remount,ro /u01
注意:后面可以根挂载点也可以跟设备本身
挂载设备:可以根据真实设备、设备UUID,设备的卷标
===>>>>查看设备的UUID和文件系统类型
[root@MissHou ~]# blkid /dev/sdb1
/dev/sdb1: UUID="FD3A-F14D" TYPE="vfat"
[root@MissHou ~]# blkid /dev/sdb2
/dev/sdb2: UUID="f1cc2198-7e5f-4408-9c74-9b93d4716d8d" TYPE="ext4"
===============>>>>根据真实设备进行挂载::
[root@web ~]# mount /dev/sdb1 /u01
===============>>>>根据UUID进行挂载::
1.查看挂载状态
[root@MissHou ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos_bogon-root 253:0 0 17G 0 lvm /
└─centos_bogon-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 1G 0 part /u01
├─sdb2 8:18 0 2G 0 part
├─sdb3 8:19 0 1K 0 part
├─sdb5 8:21 0 2G 0 part
└─sdb6 8:22 0 1022M 0 part
sr0 11:0 1 4.3G 0 rom
2.发现/dev/sdb1的挂载点为/u01,卸载挂载点
[root@MissHou ~]# umount /u01
3.再次查看挂载状态
[root@bogon ~]# lsblk
4.查看设备/dev/sdb1的UUID
[root@bogon ~]# blkid /dev/sdb1
/dev/sdb1: UUID="767cbae1-69de-40af-b639-63e56a166ec0" TYPE="ext4"
5.根据设备的UUID进行挂载
[root@bogon ~]# mount UUID="767cbae1-69de-40af-b639-63e56a166ec0" /u01
6.再次查看挂载状态,是否挂载成功
[root@bogon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos_bogon-root 253:0 0 17G 0 lvm /
└─centos_bogon-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 1G 0 part /u01
├─sdb2 8:18 0 2G 0 part
├─sdb3 8:19 0 1K 0 part
├─sdb5 8:21 0 2G 0 part
└─sdb6 8:22 0 1022M 0 part
sr0 11:0 1 4.3G 0 rom
为设备设置别名/标签的语法::
e2label 设备 别名
[root@server ~]# e2label /dev/sdb1 DISK1
===============>>>>根据设备别名为设备进行挂载
1.给设置设置别名
[root@bogon ~]# e2label /dev/sdb1 DISK1
2.查看所有设备别名
[root@bogon ~]# blkid
/dev/sda2: UUID="u0uCg8-U1V2-ytBW-1RF7-wtWR-JPif-jyPp3w" TYPE="LVM2_member"
/dev/sdb1: LABEL="DISK1" UUID="767cbae1-69de-40af-b639-63e56a166ec0" TYPE="ext4" ===>>LABEL就是别名
/dev/sda1: UUID="f79405af-1ec8-42e8-8aea-846f348c5f41" TYPE="xfs"
3.查看指定设备别名
[root@bogon ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="DISK1" UUID="767cbae1-69de-40af-b639-63e56a166ec0" TYPE="ext4" ===>>LABEL就是别名
3.卸载挂载设备
[root@bogon ~]# umount /u01
4.根据别名给设备挂载
[root@bogon ~]# mount LABEL="DISK1" /u01
5.查看是否挂载成功
[root@bogon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos_bogon-root 253:0 0 17G 0 lvm /
└─centos_bogon-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 1G 0 part /u01
├─sdb2 8:18 0 2G 0 part
├─sdb3 8:19 0 1K 0 part
├─sdb5 8:21 0 2G 0 part
└─sdb6 8:22 0 1022M 0 part
sr0 11:0 1 4.3G 0 rom
说明:e2label只能够对ext2~ext4的文件系统设置卷标
卸载设备:umount
[root@MissHou ~]# umount /u01
[root@MissHou ~]# umount /dev/sdb2
开机自动挂载:
操作系统启动流程:
-
硬件初始化 硬盘、内存...
-
系统初始化 读取加载初始化文件/sbin/init===>>>/etc/fstab
开机自动挂载文件
# vim /etc/fstab
重新读取/etc/fstab文件内容
# mount -a
特点:系统重启后自动挂载;手动卸载后重启会自动挂载或者使用mount -a自动挂载
/etc/fstab文件:
格式:
要挂载的资源路径 挂载点 文件系统类型 挂载选项 dump备份支持 文件系统检测
UUID=289370eb-9459-42a8-8cee-7006507f1477 / ext4 defaults 1 1
1段:挂载的设备(磁盘设备的文件名或设备的卷标或者是设备的UUID)
2段:挂载点(建议用一个空目录),建议不要将多个设备挂载到同一个挂载点上
3段:文件系统类型(ext3、ext4、vfat、ntfs(安装软件包)、swap等等)
4段:挂载选项
async/sync 异步/同步:
auto/noauto 自动/非自动:默认是auto
rw/ro 读写/只读:
exec/noexec 可被执行/不可被执行:也就是挂载点如果有可执行文件,会控制挂载点的可执行文件是否可以执行
remount 重新挂在一个已经挂载的文件系统,常用于修改挂载参数
user/nouser 允许/不允许其他普通用户挂载:
suid/nosuid 具有/不具有suid权限:该文件系统是否允许SUID的存在。
usrquota 这个是在启动文件系统的时候,让其支持磁盘配额,这个是针对用户的。
grpquota 支持用户组的磁盘配额。
....
defaults 同时具有rw, dev, exec, acl, async,nouser等参数。
5段:是否支持dump备份。//dump是一个用来备份的命令,0代表不要做dump备份,1代表要每天进行dump的动作,2也代表其他不定日期的dump备份。通常这个数值不是0就是1。数字越小优先级越高。
6段:是否用 fsck 检验扇区。//开机的过程中,系统默认会用fsck检验文件系统是否完整。0是不要检验,1表示最先检验(一般只有根目录会设定为1),2也是要检验,只是1是最先,2是其次才进行检验。
说明:
要挂载的资源路径可以是文件系统的UUID,设备路径,文件系统的标签 ,光盘镜像文件(iso),亦或是来自网络的共享资源等
===========>>>>>设置开机自动挂载
1.编写开机自动挂载文件/etc/fstab
[root@bogon ~]# vim /etc/fstab
2.在最后一行添加自动挂载内容,然后保存并退出,内容的含义分别是:挂载设备 挂载点 文件系统 读写,自动挂载,不执行 不做备份 不检验扇区
/dev/sdb1 /u01 ext4 rw,auto,noexec 0 0
3.重新读取/etc/fstab文件
[root@bogon ~]# mount -a
4.查看挂载状态
[root@bogon ~]# lsblk
5.重启系统
[root@bogon ~]# reboot
6.查看重启后是否自动挂载
[root@bogon ~]# lsblk
自动挂载 Automount:
特点:挂载是由访问产生,只要访问就自动挂载;卸载是由超时产生,也就是不用的时候过段时间就自动卸载;依赖于后台的autofs服务
思路:
1. 所有的监控都是由一个程序完成 autofs
2. 服务启动后才会监控挂载的设备
3. 修改配置文件来指定需要监控的设备
需求1:让系统自动挂载/dev/sdb2设备到/u02,如果2分钟没有被用自动卸载
步骤:
1)前提必须保证/dev/sdb2格式化,下面设置格式化:
[root@server ~]# mkfs.ext4 /dev/sdb2
2)安装autofs软件
[root@server ~]# rpm -q autofs
package autofs is not installed
如果没有则安装autofs,有的话不用安装
[root@server ~]# yum -y install autofs
[root@server ~]# rpm -q autofs
autofs-5.0.5-88.el6.x86_64
3)修改配置文件(指定需要监控的设备和挂载的目录)
定义一级挂载点/u02和子配置文件
[root@server ~]# vim /etc/auto.master
在第7行下面添加如下配置内容,然后保存并退出:
/u02 /etc/auto.test --timeout=120 单位秒 (设置超时时间去卸载)
子配置文件自己创建,定义二级挂载点和需要挂载的设备
[root@server ~]# vim /etc/auto.test
添加如下配置内容,分别标识:二级挂载点名称 文件系统类型 挂载设备
test -fstype=ext4,rw :/dev/sdb2
4)重启服务
[root@MissHou ~]# systemctl restart autofs
5)测试验证
访问/u02后,访问test,访问后自动挂载
[root@server ~]# cd /u02
[root@server ~]# cd test
查看是否自动挂载
[root@server ~]# df -h
需求2:将10.1.1.1(node1)上的共享目录/share/nfs挂载到10.1.1.2(server)本地的/notes下面
环境,重新克隆两个服务器分别是node1和server:
node1:10.1.1.1 搭建NFS服务,共享/share/nfs/xxx
server:10.1.1.2 使用autofs自动挂载server上共享目录
步骤:
1. node1端共享文件
1)修改/etc/exports文件
[root@node1 ~]# mkdir /share/nfs -p
[root@node1 ~]# touch /share/nfs/file{1..5}
将共享目录发布出去:
[root@node1 ~]# vim /etc/exports
配置内容的含义是将/share/nfs目录共享给server10.1.1.2
/share/nfs server服务器IP/24(rw)
[root@node1 ~]# cat /etc/exports
/share/nfs 10.1.1.2/24(rw)
2)重启nfs服务
[root@node1 ~]# systemctl restart rpcbind
[root@node1 ~]# systemctl restart nfs
2. server端使用autofs方式自动挂载
1)创建/u01目录
[root@server ~]# mkdir /u01
2)安装autofs软件
[root@server ~]# yum -y install autofs
3)修改配置文件(指定需要监控的设备和挂载的目录)
定义一级挂载点/u01和子配置文件
[root@server ~]# vim /etc/auto.master
在第7行下面添加如下配置内容,然后保存并退出:
/u01 /etc/auto.notes --timeout=120 单位秒 (设置超时时间去卸载)
子配置文件自己创建,定义二级挂载点和需要挂载的设备
[root@server ~]# vim /etc/auto.notes
添加如下配置内容,分别标识:二级挂载点名称 文件系统类型 挂载设备
notes -nfs,rw node1服务器IP:/share/nfs
4)重启服务
[root@MissHou ~]# systemctl restart autofs
5)测试是否自动挂载
[root@MissHou ~]# ls /u01
如果报错,可以试试systemctl stop autofs,然后执行systemctl start autofs
[root@MissHou ~]# ls /u01/notes/
file1 file2 file3 file4 file5
[root@MissHou ~]# df -h
总结:挂载设备的三种方式
-
设备要被挂载,必须要有文件系统类型(mkfs.类型)
-
手动挂载mount mount -o 挂载选项(ro,rw,auto,noexec...) 需要挂载设备 挂载点
-
重启需要再次重新挂载
-
-
开机自动挂载
-
/etc/fstab
-
修改/etc/rc.local文件 启动后最后读取文件,执行该文件必须要有可执行权限
-
-
autofs自动挂载
-
使用时触发自动挂载
-
超时自动卸载
-
如何配置设备的autofs自动挂载
1)安装autofs软件
2)修改/etc/auto.master文件 定义1级挂载点和超时时间,子配置文件
3)创建刚刚定义的子配置文件 二级挂载点和需要挂载设备以及文件系统类型及挂载方式
4)启动服务,测试验证
-
- 点赞
- 收藏
- 关注作者
评论(0)