【九】磁盘管理
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个分区。
4)Linux6版本安装时一般选择ext4格式,这个文件格式存取效率较高,是一种日志型文件系统,但是windows是不识别的,ext4是GNU/linux系统中标准的文件系统。一个分区做成了ext4文件系统后,如果要使用必须挂载它(mount),系统缺省提供了一个目录,就是/mnt,当然你可以根据需要再建其他的目录作为挂载点,只读设备如光驱也如此。
9.2 挂载、卸载文件系统
1)mount命令
用途:挂载文件系统、ISO镜像到指定文件夹
格式:mount [ -t 类型 ] 存储设备 挂载点目录
2)umount命令
用途:卸载已挂载的文件系统
格式:umount 存储设备位置
3)如何在vbox下mount光盘
第一步,分配光驱:
这一步相当于把光盘插入光驱
第二步,手工mount光盘:
[root@alex]#mount /dev/cdrom /media
4)系统挂载表
/etc/fstab文件称为系统挂装表,作用是当系统启动时自动mount的文件系统,只需要用文本编辑器修改系统挂装表,添加相应的mount记录即可。
第一字段:设备位置
第二字段:挂载点
第三字段:文件系统类型
第四字段:挂载参数,即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
由两块或两块以上硬盘组成,但是每块硬盘所贡献的空间大小必须相同,读写效率高。
2)RAID1
由两块磁盘组成,每块磁盘提供相同大小的空间,支持容错,即一块硬盘损坏后数据不会丢失,磁盘空间利用率50%。
3)Raid5
至少需要三块硬盘,每块硬盘必须提供相同的磁盘空间,提供容错功能,磁盘空间利用率n-1/n,n为磁盘数量。
4)Raid 1+0(或0+1)
【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如何组织并存储数据?
1)线性卷:
一个线性卷可以将多个物理卷,集合到一个逻辑卷中。示例:如果有两个磁盘,60G和40G,我们可以创建一个100G的逻辑卷。其实就是将物理存储串连在一起了,写入数据到线性卷时,数据在磁盘是顺序写入的,即第一块物理盘写满了,再写入第二块磁盘。
2)条状卷:
当向LVM逻辑卷读写数据时,文件系统在基本物理卷之间部署数据。相当于同时从多个物理盘上读写(类似RAID0技术)。对于大批量的读取和写入,这样可以提高数据输入/输出的效率。
进行条状分布:所谓的round-round。
数据的第一条写入PV1
数据的第二条写入PV2
数据的第三条写入PV3
数据的第四条写入PV1
3)镜像卷:
镜像维护不同设备中的相同的副本。当向一个设备中写入数据时,也会向第二个设备中写入,即镜像保存数据(相当于RAID1)。当镜像的一个分支失败时,逻辑卷就成为一个线性卷,但仍然可访问。使用LVM,可以创建有多个镜像的镜像逻辑卷。
LVM 的管理命令:
pvcreate 设备名
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
the end !!!
@jackman 共筑美好!