1.磁盘的基本分区Gdisk
前面我们已经了解到fdisk分区,但fdisk不支持给高于2TB的磁盘进行分区。如果有单块盘高于2TB,建议使用Gdisk进行分区。
1.使用gdisk进行磁盘分区
#1.安装gdisk分区工具
[root@oldboy ~]# yum install gdisk -y
#2.创建一个新分区,500MB大小
[root@oldboy ~]# gdisk /dev/sdb
Command (? for help): n #创建新分区
Partition number (1-128, default 1):
First sector (34-2097118, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: +500M #分配500M大小
Command (? for help): p #打印查看
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB 8300 Linux filesystem
Command (? for help): w #保存分区
Do you want to proceed? (Y/N): y #确认
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
#3.创建完成后,可以尝试检查磁盘是否为gpt格式
[root@oldboy -node1 /]# fdisk /dev/sdb -l|grep type
Disk label type: gpt
#4.安装parted, 刷新内核立即生效,无需重启
[root@oldboy ~]# yum -y install parted
[root@oldboy ~]# partprobe /dev/sdb
2.使用mkfs进行格式化磁盘。
[root@oldboy ~]# mkfs.xfs /dev/sdb
3.使用mount命令将某个目录挂载该分区,进行使用。
[root@oldboy ~]# mkdir /data_gdisk
[root@oldboy ~]# mount /dev/sdb /data_gdisk
2.磁盘挂载方式Mount
前面我们已经提到过,如果需要使用磁盘的空间,需要准备一个空的目录作为挂载点,与该设备进行关联。mount主要是为文件系统指定一个访问入口。
ps:类似我的商场没有门,那么就无法进入购买商品,此时通过mount命令可以创建一个入口。给超市安装一个门。
1.通过mount进行挂载,但重启将会失效。我们称为临时生效。
# 选项:-t指定文件系统挂载分区 -a 挂载/etc/fstab中的配置文件 -o 指定挂载参数
# 挂载/dev/sdb1至db1目录
[root@oldboy ~]# mkdir /db1
[root@oldboy ~]# mount -t xfs /dev/sdb1 /db1/
2.挂载的磁盘,如果不想使用可以使用umount进行卸载。
#选项: -l 强制卸载
#1.卸载目录方式
[root@oldboy ~]# umount /db1
#2.卸载设备方式
[root@oldboy ~]# umount /dev/sdb1
#3.umount不能卸载的情况
[root@oldboy db1]# umount /db1
umount: /db1: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1)
#PS: 如上情况解决办法有两种, 1.切换至其他目录 2.使用'-l'选项强制卸载
[root@student db1]# umount -l /db1
3.如果需要实现永久挂载则需要将挂载信息写入/etc/fstab配置文件中实现。
#1.使用blkid命令获取各设备的UUID
[root@xuliangwei ~]# blkid |grep "sdb1"
/dev/sdb1: UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" TYPE="xfs"
#2.使用UUID挂载磁盘sdb1分区至于db1, 测试挂载
[root@oldboy ~]# mount UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" /db1
#3.写入/etc/fstab中,实现开机自动挂载
[root@oldboy ~]# tail -1 /etc/fstab
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0
#4.加载fstab配置文件, 同时检测语法是否有错误
[root@oldboy ~]# mount –a
4./etc/fstab配置文件编写格式
第四列:挂载参数。挂载参数有很多,在这块我们了解即可,不必深究。
第五列:是否进行备份。通常这个参数的值为0或者1
第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整
3.虚拟磁盘介绍SWAP
Swap分区在系统的物理内存不够时,将硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。
PS: 当物理内存不够时会随机kill占用内存的进程,从而产生oom,临时使用swap可以解决。
1.创建分区,并格式化为swap分区。
[root@oldboy ~]# fdisk /dev/sdb #分1个G大小
[root@oldboy ~]# mkswap /dev/sdb1 #格式化为swap
2.查看当前swap分区大小,然后进行扩展和缩小
[root@oldboy ~]# free -m
total used free shared buff/cache available
Mem: 1980 1475 80 10 424 242
Swap: 2047 4 2043
#1.扩展swap分区大小
[root@oldboy ~]# swapon /dev/sdb2
[root@oldboy ~]# free -m
total used free shared buff/cache available
Mem: 1980 1475 80 10 424 242
Swap: 3047 4 2043
[root@oldboy ~]# swapon -a #代表激活所有的swap
#2.缩小swap分区大小
[root@oldboy ~]# swapoff /dev/sdb1
[root@oldboy ~]# free -m
total used free shared buff/cache available
Mem: 1980 1475 80 10 424 242
Swap: 2047 4 2043
[root@oldboy ~]# swapoff -a #代表关闭所有的swap
3.检查当前swap分区有哪些设备
[root@oldboy ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 2097148 4616 -2
/dev/sdb1 partition 1048572 0 -2
4.如果磁盘没有过多的分区可用,也可以通过文件增加SWAP空间,本质上还是磁盘
[root@oldboy ~]# dd if=/dev/zero of=/opt/swap_file bs=1M count=500
[root@oldboy ~]# chmod 0600 /opt/swap_file
[root@oldboy ~]# mkswap -f /opt/swap_file
[root@oldboy ~]# swapon /opt/swap_file
[root@oldboy ~]# free -m
4.磁盘阵列
1.什么是磁盘阵列
提高磁盘的整体读写能力,和冗余能力,通常我们将其称为磁盘阵 列。
2.RAID
提高性能,保证安全
3.RAID常见模式
1.Raid0模式
优点:在raid0状态下,存储数据被分割成两部分,分别存储在两 硬盘上,此时移动硬盘的理论存储速度是单块硬盘的2倍,实际容量等于两块硬盘中最小的一块的2倍。
缺点:任何一块硬盘发生故障,整个raid上的数据将不可恢复。备注:存储高清电影比较适合。
2.raid1模式
优点:此模式下,两块硬盘互为镜像。当一个硬盘受损时,换上一块全新的硬盘(大于或者等于原来硬盘容量)替代原硬盘即可自动恢复资料和继续使用,移动硬盘的实际容量等于较小一块硬盘的容量,存储速度与单块硬盘相同。raid 1的优势在于任何一块硬盘出现故障时,所存储的数据都不会丢失。
缺点 :该模式可使用的硬盘实际容量比较小,仅仅为两颗硬盘中最小硬盘的容量。
备注:非常重要的资料,如数据库,个人资料,是万无一失的存储方案
3.raid 5模式
raid5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到raid5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当raid5的一个磁盘数据发生损坏后,利用剩下的数据和相对应的奇偶校验信息去恢复被损坏的数据。
4.raid 10模式
raid10至少需要四块硬盘才能完成。把两块硬盘组成一个raid1,然后两组raid1组成一个raid0。虽然raid10方案造成50%的磁盘浪费,但是它提供了200%的速度和单磁盘损坏的数据安全性。
ps:一般生产过程中我们普遍都是使用的raid5模式,并且raid1和raid5需做热备盘,不然插入一个空盘会导致数据不能进行同步
4.磁盘阵列有两种方式可以实现,那就是“软件阵列”与“硬件阵列”。
软件阵列:是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。
硬件阵列:是使用专门的磁盘阵列卡来实现的。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作,它的性能要远远高于常规非阵列硬盘,并且更安全更稳定。
磁盘阵列其实也分为软阵列 (Software Raid)和硬阵列 (Hardware Raid) 两种. 软阵列即通过软件程序并由计算机的 CPU提供运行能力所成. 由于软件程式不是一个完整系统故只能提供最基本的 RAID容错功能. 其他如热备用硬盘的设置, 远程管理等功能均一一欠奉. 硬阵列是由独立操作的硬件提供整个磁盘阵列的控制和计算功能. 不依靠系统的CPU资源.
由于硬阵列是一个完整的系统, 所有需要的功能均可以做进去. 所以硬阵列所提供的功能和性能均比软阵列好. 而且, 如果你想把系统也做到磁盘阵列中, 硬阵列是唯一的选择. 故我们可以看市场上 RAID 5 级的磁盘阵列均为硬阵列. 软 阵列只适用于 Raid 0 和 Raid 1. 对于我们做镜像用的镜像塔, 肯定不会用 Raid 0或 Raid 1。作为高性能的存储系统,已经得到了越来越广泛的应用。RAID的级别从RAID概念的提出到现在,已经发展了六个级别,其级别分别是0、1、2、3、4、5等。但是最常用的是0、1、3、5四个级别。