【九】磁盘管理

9.1 linux硬盘的基本概念:

1)在linux中,每一个硬件设备都会以一个文件的形式映射到/dev目录下,第一个IDE设备定义为hda,第二个IDE设备就定义为hdb,以此类推,而SCSI设备就应该是sda、sdb、sdc等。

2)对于每一个硬盘(IDE/SCSI)设备,Linux分区分配一个1-16的序列号码,这就代表了硬盘上面的分区号码,示例:加一块SCSI硬盘,第一个分区是编号是sdb1,第二个分区就是sdb2,以此类推…

3)有三种分区,分别是主分区,扩展分区和逻辑分区

主分区】的作用是启动操作系统,所以linux的启动系统或引导程序都应该存放在主分区上。

【逻辑分区】实际上是扩展分区的具体体现,扩展分区要占用一个设备号。linux规定了主分区(或者扩展分区)一共最多是4个,分别占用1至16号码中的前四个号码,示例:第一个SCSI硬盘的主分区(或扩展分区)占用sda1, sda2, sda3, sda4。而逻辑分区则可以占用sda5到sda16等12个号码,这就对应上了前面所说的最多16个分区

LINUX_磁盘管理插图

4)Linux6版本安装时一般选择ext4格式,这个文件格式存取效率较高,是一种日志型文件系统,但是windows是不识别的,ext4是GNU/linux系统中标准的文件系统。一个分区做成了ext4文件系统后,如果要使用必须挂载它(mount),系统缺省提供了一个目录,就是/mnt,当然你可以根据需要再建其他的目录作为挂载点,只读设备如光驱也如此。

9.2 挂载、卸载文件系统

1)mount命令

用途:挂载文件系统、ISO镜像到指定文件夹
格式:mount [ -t 类型 ] 存储设备 挂载点目录

2)umount命令

用途:卸载已挂载的文件系统
格式:umount 存储设备位置

3)如何在vbox下mount光盘

第一步,分配光驱:

LINUX_磁盘管理插图1

这一步相当于把光盘插入光驱

第二步,手工mount光盘:

[root@alex]#mount /dev/cdrom /media

4)系统挂载表

/etc/fstab文件称为系统挂装表,作用是当系统启动时自动mount的文件系统,只需要用文本编辑器修改系统挂装表,添加相应的mount记录即可。

LINUX_磁盘管理插图2

第一字段:设备位置

第二字段:挂载点

第三字段:文件系统类型

第四字段:挂载参数,即mount命令“-o”选项后可使用的参数,如defaults、rw等

第五字段:表示文件系统是否需要dump备份(dump是一个备份工具),一般设为1时表示需要,设为0时将被dump所忽略

第六字段:该数字用于决定在系统启动时进行磁盘检查的顺序,0不进行检查,1优先,2其次。对于根分区应设为1,其它分区设为2

【注】此表修改要小心,因改写错误可能使系统不能启动,如果提示发现文件是只读的,请尝试重新mount后再次修改fstab文件。

#mount -n -o remount, rw /

9.3增加SWAP分区

扩充一块swap空间最好来自一个单独的分区,尽量避免使用根分区,但我们这里只是讲解一下步骤,就使用一次根分区吧。

[root@alex ~]# free –m 查看内存空间分配
[root@alex ~]# df –h 查看磁盘空间分配

先用dd命令生成一个空文件,把它放在/下,单位1024m,设置2G,另外bs的单位M要大写。

[root@alex ~]# dd if=/dev/zero of=/swap1 bs=1M count=2048

2)创建一个swap类型文件,名字随便

[root@alex ~]# mkswap /swap1

3)将swpf1生成swap文件

[root@alex ~]# swapon /swap1

查看一下,swap1起作用了

[root@alex ~]# free –m

4)实现开机后自动使用新添swap1分区

[root@alex ~]# vi /etc/fstab

添加swap行

/swap1 swap swap defaluts 0 0

5)修改tmpfs行 tmpfs是一个虚拟内存(物理内存+交换区)的文件系统

tmpfs /dev/shm tmpfs defaults,size=2G 0 0

6)tmpfs重置一下,使其当下有效

[root@alex ~]#mount -o remount /dev/shm

7)如何撤销操作,返回原状

[root@alex ~]#swapoff /swap1
[root@alex ~]#rm -rf /swap1

修改/etc/fstab文件 逆操作回到初始状态。

9.4磁盘操作相关命令

1)du用于查看磁盘使用情况。

du –s 显示当前目录总的使用量
du –h 带单位显示磁盘各个文件的使用量令
[root@alex ~]#du -sh

888K .

[root@alex ~]#du -sh /etc

114M /etc

2)df 用于查看磁盘剩余情况。

df -h 带单位显示磁盘信息
[root@alex ~]#df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/sda2 28G 4.7G 21G 19% /
/dev/sda1 99M 12M 83M 13% /boot
tmpfs 1014M 0 1014M 0% /dev/shm

3)磁盘分区命令

fdisk 的子命令:
m:显示命令帮助清单
a:激活分区的可引导标志
l:列出可选的分区类型
n:添加新分区
d:删除已经存在的分区
p:显示分区表
t:改变分区的文件系统类型
w:写分区表
q:退出

4)磁盘格式化操作

语法: mkfs <选项> <分区设备名>
如:#mkfs -t ext4 /dev/sdb1
或者: mkfs.ext4 <分区设备名>
如:#mkfs.ext4 /dev/sdb1

9.5磁盘限额

Linux系统在默认情况下,并不限制每个用户或组使用磁盘空间的大小,如果某个用户疏忽或恶意将磁盘占满,将导致系统无法进行写操作甚至崩溃。Linux提供的磁盘限额是基于磁盘分区的,而不是基于目录的。

本节实验目标是提供磁盘限额功能:

一)设置磁盘限额的步骤:

(1)启动分区限额功能

(2)生成限额信息文件

(3)设置用户和组限额

(4)启动磁盘限额服务

二)实验:配置磁盘限额

1)启动分区限额功能;/etc/fstab文件中添加描述

[root@alex ~]#vi /etc/fstab
[root@alex ~]#mount -o remount /disk1
[root@alex ~]#df

2)生成配额信息文件

[root@alex ~]#quotacheck -avug
[root@alex ~]#ls -al /disk1

drwxrwxrwx 5 root root 4096 12-10 14:52 .

drwxr-xr-x 26 root root 4096 12-10 14:11 ..

-rw——- 1 root root 7168 12-10 14:55 aquota.group

-rw——- 1 root root 8192 12-10 14:57 aquota.user

3)设置用户和组限额

3.1)设置用户限额

[root@alex disk1]#edquota -u ran
[root@alex disk1]#edquota -p ran wang liu 复制给其他用户

3.2)设置组限额

[root@alex disk1]#edquota -g class01
[root@alex disk1]#edquota -g -p class01 class02 复制给其他组

3.3)查看用户和组限额

[root@alex disk1]#repquota -avug

参数说明:

-a 扫描/etc/fstab里有加入quota的分区,
-v 显示指令执行过程
-u 计算当前user使用磁盘空间和Inode数
-g 计算当前group使用磁盘空间和Inode数

4)启动磁盘限额服务

[root@alex ]#quotaon -a

/disk1的磁盘限额已经开启

5)迁移/usr下用户目录到/disk1下,并建立链接

[root@alex ~]#mv /usr/class01 /disk1
[root@alex ~]#mv /usr/class02 /disk1
[root@alex ~]#ln -s /disk1/class01 /usr/class01
[root@alex ~]#ln -s /disk1/class02 /usr/class02

6)测试磁盘限额作用

以ran用户登录

[ran@alex ~]$dd if=/dev/zero of=/usr/class01/ran/ranfile bs=1024K count=50

7)删除磁盘限额

[root@alex ~]#quotaoff -a 关闭quota
[root@alex ~]#rm /disk1/aquota.* 删除/disk1下的两个磁盘限额文件
[root@alex ~]#vi /etc/fstab 去除usrquota,grpquota描述

9.6磁盘阵列的RAID存储技术

一)RAID介绍

RAID技术是以硬件方式(磁盘柜及控制器)实现的存储管理技术,可以实现数据并行读写、快速的动态扩容及支持多种容错方案。

1)Raid0

由两块或两块以上硬盘组成,但是每块硬盘所贡献的空间大小必须相同,读写效率高。

LINUX_磁盘管理插图3

2)RAID1

由两块磁盘组成,每块磁盘提供相同大小的空间,支持容错,即一块硬盘损坏后数据不会丢失,磁盘空间利用率50%。

LINUX_磁盘管理插图4

3)Raid5

至少需要三块硬盘,每块硬盘必须提供相同的磁盘空间,提供容错功能,磁盘空间利用率n-1/n,n为磁盘数量。

LINUX_磁盘管理插图5

4)Raid 1+0(或0+1)

LINUX_磁盘管理插图6

LINUX_磁盘管理插图7

【RAID 0+1】 和【RAID 1+0】的比较:

RAID0+1】:是先做两个RAID0,然后再做RAID1,因此RAID0+1允许坏多个盘,但只能在坏在同一个RAID0中,不允许两个RAID0都有坏盘。如上图,两组盘柜错开损坏,RAID 0+1将失效,但RAID1+0可仍然存活。
【RAID1+0】:是先做RAID1,然后再做RAID0,因此RAID1+0允许坏多个盘,只要不是一对磁盘坏。

结论:RAID1+0 比 RAID0+1安全得多,因为在同一组磁盘中,两块磁盘都坏掉的概率很低。

9.7逻辑卷管理器LVM

1)Logical Volume Manager,逻辑卷管理

LVM是以完全的软件方式实现的磁盘高级管理,屏蔽了底层磁盘布局,便于动态调整磁盘容量。

【注】:/boot分区用于存放引导文件,不能应用LVM机制。

2)逻辑卷有三大优点

1、在多个磁盘上条带化存储数据,提供并行IO能力

2、可以建立磁盘镜像,提供容错功能保护数据

3、扩展性好,根据需要灵活扩容存储空间

Linux LVM如何组织并存储数据?

LINUX_磁盘管理插图8

1)线性卷:

一个线性卷可以将多个物理卷,集合到一个逻辑卷中。示例:如果有两个磁盘,60G和40G,我们可以创建一个100G的逻辑卷。其实就是将物理存储串连在一起了,写入数据到线性卷时,数据在磁盘是顺序写入的,即第一块物理盘写满了,再写入第二块磁盘。

LINUX_磁盘管理插图9

2)条状卷:

当向LVM逻辑卷读写数据时,文件系统在基本物理卷之间部署数据。相当于同时从多个物理盘上读写(类似RAID0技术)。对于大批量的读取和写入,这样可以提高数据输入/输出的效率。

进行条状分布:所谓的round-round。

LINUX_磁盘管理插图10

数据的第一条写入PV1

数据的第二条写入PV2

数据的第三条写入PV3

数据的第四条写入PV1

3)镜像卷:

镜像维护不同设备中的相同的副本。当向一个设备中写入数据时,也会向第二个设备中写入,即镜像保存数据(相当于RAID1)。当镜像的一个分支失败时,逻辑卷就成为一个线性卷,但仍然可访问。使用LVM,可以创建有多个镜像的镜像逻辑卷。

LINUX_磁盘管理插图11

LVM 的管理命令:

pvcreate 设备名
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
LINUX_磁盘管理插图12

the end !!!

@jackman 共筑美好!