Centos 磁盘管理(二)-阿里云开发者社区

开发者社区> 开发与运维> 正文

Centos 磁盘管理(二)

简介:

/etc/fstab

启动Linux、mount、 fsck 命令等命令执行都都会用到fstab信息,它提供的是系统上挂载设备的静态信息,比如 mount -a 就会挂载 /etc/fstab 里面指定的文件系统。当执行mount -a时只会挂载那些存在于/etc/fstab中的项目却未挂载的,已经挂载的不受影响。

/etc/mtab 是相对动态的。记载当前系统已经装载的文件系统,包括一些操作系统虚拟文件,这跟/etc/fstab有些不同。/etc/mtab文件在mount挂载、umount卸载时都会被更新,时刻跟踪当前系统中的分区挂载情况。当使用mount -n 时不会更新此文件,所以在某些指令会隐藏相对挂载情况。此文件在Centos7后变成了/proc/self/mounts的软链接。

/proc/mounts

这个文件是/proc/self/mounts的软链接,/proc下面的文件都是保存在内存中的,是内核自动生成的。所以/proc/mounts比/etc/mtab文件能更加真实的反映当前mount的情况。

Centos 6

1.png

Centos 7

1.png

使用mount -n 挂载后

1.png

可以通过比较/etc/fstab和/proc/mounts中的不同之处,得到被umount的设备

变相进行跨分区的硬链接

如果使用mount -B进行目录挂载目录的时候,/etc/fstab下的格式必须这么写

/源目录 /挂载目录 none bind

在/etc/fstab中提定defaults时,将包含以下挂载选项

Centos6-(2.6.30内核以后)defaults:rw, suid, dev, exec, auto, nouser, async,  relatime.

Centos7-defaults:rw, suid, dev, exec, auto, nouser, async, relatime

利用目录挂载目录特点,可以同一个磁盘分区分别进行不同的磁盘挂载选项。

1.png

可以对文件创建文件系统,也就是本地loop设备

实例

#dd if=/dev/zero of=partfile bs=1M count=1024

1.png

可以创建成功,

1.png

同样的有Superblock信息哦

1.png

但是并不能进行分区操作哦

1.png

#mount -o loop /mnt/partfile /app/partloop/

1.png

可以进行磁盘文件操作的

1.png

复制到其他机器也是可以进行挂载使用的

1.png

Centos 6默认系统只有8个loop设备,手动使用mknod(#mknod loop8 c 1 5)创建的第8个以上的loop设备将会丢失,因此,如果想用更多的设备,请按以下方式添加

修改/boot/grub/grub.conf,找到 kernel这一行,在行末端加入max_loop=数量

1.png

loop设备如果需要开机挂载,需要在/etc/fstab按以下格式设置,

Centos6  必须要加上loop选项

/mnt/partfile /app/partloop  ext4  defaults,loop  0  0

Centos7

与普通挂载没什么区别,注意文件系统格式不要搞错了。

/mnt/partfile   /mnt/filesystem  ext4 defaults 0 0



/etc/fstab格式

1.png

第一列:磁盘设备文件或者该设备的Label或者UUID。强烈建议使用UUID形式,设备名和Label都有可能发生变化。光盘没有UUID

第二列:设备的挂载点,就是你要挂载到哪个目录下

第三列:磁盘文件系统的格式。如果是目录挂载目录,则表示为none bind

第四列:文件系统的参数

async/sync

设置是否为同步方式运行,默认为async

atime/noatime

是否每一次访问文件与目录都更新inode访问时间(access time)

diratime/nodiratime

是否每一次访问目录都更新inode访问时间(access time)

auto/noauto

mount -a 的命令时,此文件系统是否被主动挂载。默认为auto

exec/noexec

限制此文件系统内是否能够进行"执行x"的操作

dev/nodev

是否支持在此文件系统上使用设备文件

suid/nosuid

是否允许SUID权限的存在

remount

重新挂载一个已经挂载了的文件系统而不修改其挂载点,立即生效

user/nouser

是否允许普通用户挂载此设备

usrquota

启用文件系统支持磁盘配额用户级模式

grpquota

启用文件系统支持磁盘配额组级模式

rw

是否以读写模式挂载

ro

是否以只读模式挂载

acl

启用此文件系统上的acl功能

loop

使用loop设备

none bing

目录挂载目录时使用

relatime

按照文件被修改的时间更改inode访问时间。也就是仅在文件的修改时间

比访问时间新时才更新访问时间。

与 noatime 类似,但是可以让 mutt 之类需要知道文件在最后一次被修改后

是否被访问过的程序正常工作。

从 Linux 2.6.30 起,这是默认值(除非指定了 noatime)。

从 Linux 2.6.30 起,如果文件的最后访问时间已超过24小时未更新,

也会被强制更新。

defaults

相当于rw, suid, dev, exec, auto, nouser, async, relatime

pri=数字

设定swap文件的优先级,仅仅对swap分区有效果

第五列:能否被dump备份命令作用:dump是一个用来作为备份的命令。通常这个参数的值为0或者1

0

代表不要做dump备份

1

代表要每天进行dump的操作

2

代表不定日期的进行dump操作

第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean状态)。

0

不要检验

1

最早检验(一般根目录会选择)

2

1级别检验完成之后进行检验

创建额外的swap交换文件

系统安装好时候如果创建的swap分区小了,是无法进行扩容大。但是可以通过新增加一个swap文件进行扩容。

准备一个磁盘分区或前面讲到的loop设备,(但是,用文件创建的loop设备swap文件,性能肯定不如独立的分区性能好)

将文件系统格式化:编号为82的Linux swap

使用#mkswap专用命令进行格式化

1.png

将此UUID写入/etc/fstab下面,注意格式(如下图)

1.png

先看看增加swap前的数值

1.png

使用指令# swapon -a生效

1.png

使用swapon -s 或#cat /proc/swaps查看详细的信息,包括优先级(Priority),优先级数字越大的优先使用。

1.png

设置swap的优先级需要修改/etc/fstab,想哪个优先使用将设置数值大一些

1.png

将新设定生效,注意,一定严格步骤,以下2种方式都可以

#swapoff UUID=ad2786dd-6056-4ea6-ba6a-c2915bab280f

#swapoff /dev/sdb1

1.png

再重新挂载/etc/fstab中的swap即可

1.png

总结:

可以指定swap分区0到32767的优先级,值越大优先级越高。如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级减一

先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)

优化性能:分布存放,高性能磁盘存放

关于光盘的设备号,编写脚本的时候可以统一使用/dev/cdrom来访问

关于eject命令,可以使用来弹出光驱或磁盘。

实际应用场景,如果在管理非常多的主机的时候,发现其中有一台上面有一个磁盘坏的时候,可以将其上面的光驱弹出,以便立即发现变化的主机,从而准确定位。

eject 弹出光驱托盘

ejetc -t 收起光驱托盘

关于制作光盘ISO,最简单的方式就是

cp /dev/cdrom file.iso

dd if=/dev/cdrom of=file.iso



本文转自 ljpwinxp 51CTO博客,原文链接:http://blog.51cto.com/191226139/2051185

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章