day20-Linux基础学习 磁盘管理(下)

一、磁盘的基本分区Gdisk

当我们查看磁盘的时候,我们首先要看磁盘是那种分区格式的,如果是MBR分区格式,我们最好使用fdisk –l,要是为GPT分区格式的硬盘,我们就使用gdisk –l来查看。因为fdisk查看GPT格式的磁盘最大能看到2T,再多的磁盘分区就无法查看,还会出错。

1、分区

#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大小
Current type is 'Linux filesystem'    #当前类型为“Linux文件系统”
Hex code or GUID (L to show codes, Enter = 8300):  #十六进制代码或guid(L表示代码):
Changed type of partition to 'Linux filesystem'  #已将分区类型更改为“Linux文件系统”

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.

2、格式化

[root@oldboy ~]# mkfs.xfs  /dev/sdb

3、挂载

[root@oldboy ~]# mkdir /data_gdisk
[root@oldboy ~]# mount /dev/sdb /data_gdisk

二、磁盘挂载方式Mount

如果需要使用磁盘的空间,需要准备一个空的目录作为挂载点,与该设备进行关联。
mount主要是为文件系统指定一个访问入口。

1、挂载

mount进行挂载,但重启将会失效。我们称为临时生效。

# 选项:
#-t 指定文件系统挂载分区 
#-a 挂载/etc/fstab中的配置文件 
#-o 指定挂载参数  rw,ro

# 挂载/dev/sdb1至db1目录
[root@oldboy ~]# mkdir /db1
[root@oldboy ~]# mount -t xfs /dev/sdb1  /db1/

#将/dev/sdc2挂载至/sdc_back目录,但只允许读,不允许写
[root@oldboy ~]# mount -o ro -t xfs /dev/sdb1 /db1
[root@oldboy /db1]# touch file
touch: cannot touch ‘file’: Read-only file system

#通过设备的UUID进行挂载(UUID==身份证)
[root@oldboy ~]# blkid  #查看所有设备的UUID
[root@oldboy ~]# mount UUID="fb112fea-b369-497e-a6df-4fa8763d0aa6" /db1

2、卸载

#选项: -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@oldboy /db1]# umount -l /db1

3、永久挂载

如果需要实现永久挂载则需要将挂载信息写入/etc/fstab配置文件中实现。

#1.使用blkid命令获取各设备的UUID
[root@oldboy ~]# 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

(1)/etc/fstab配置文件编写格式

要挂载的设备 挂载点(入口) 文件系统类型 挂载参数 是否备份 是否检查
/dev/sdb1 /db1 xfs defaults 0 0

(2)第四列:挂载参数

参数 含义
async/sync 是否为同步方式运行。默认async
user/nouser 是否允许普通用户使用mount命令挂载。默认nouser
exec/noexe 是否允许可执行文件执行。默认exec
suid/nosuid 是否允许存在suid属性的文件。默认suid
auto/noauto 执行mount -a 命令时,此文件系统是否被主动挂载。默认auto
rw/ro 是否以只读或者读写模式进行挂载。默认rw
default 具有rw,suid,dev,exec,auto,nouser,async等默认参数的设定

(3)第五列:是否进行备份。通常这个参数的值为0或者1

选项 含义
0 代表不做备份
1 代表要每天进行备份操作
2 代表不定日期的进行备份操作

(4)第六列:是否检验扇区

开机的过程中,系统默认会以fsck检验我们系统是否为完整

选项 含义
0 不要检验磁盘是否有坏道
1 检验
2 校验 (当1级别检验完成之后进行2级别检验)

三、虚拟磁盘介绍SWAP

Swap分区在系统的物理内存不够时,将硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。当物理内存不够时会随机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

四、磁盘阵列

1、什么是磁盘阵列

提高磁盘的整体读写能力,和冗余能力,通常我们将其称为磁盘阵列。

2、RAID

提高性能
保证安全

3、RAID模式

(1)RAID0

day20-Linux基础学习 磁盘管理(下)_第1张图片
RAID0.png
#mdadm命令
#作用:管理RAID
#选项
#-A     激活磁盘阵列
#-C     建立一个新阵列
#-D     打印阵列设备的信息
#-G     改变阵列大小或形态
#-S     停止阵列
#-r     移除设备
#-l     设定磁盘阵列的级别
#-n     指定阵列磁盘的数量
#-x     指定阵列中备用盘的数量
#-f     将设备状态定为故障
#-a     添加设备到阵列
#软RAID0
#1.创建raid0
[root@oldboy ~]# mdadm  -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc

#2.查看阵列信息
[root@oldboy ~]# mdadm -D /dev/md0

#3.对创建的RAID0进行文件系统创建并挂载
[root@oldboy ~]# mkfs.xfs /dev/md0
[root@oldboy ~]# mkdir /raid0
[root@oldboy ~]# mount /dev/md0 /raid0/
[root@oldboy ~]# df -Th /raid0/

(2)RAID1

day20-Linux基础学习 磁盘管理(下)_第2张图片
RAID1.png
#软RAID1
#1.创建raid1
[root@oldboy ~]# mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sdd /dev/sde /dev/sdf

#2.查看 RAID 阵列信息
[root@oldboy ~]# mdadm  -D /dev/md1

#3.在RAID设备上创建文件系统
[root@oldboy ~]# mkfs.xfs /dev/md1
[root@oldboy ~]# mkdir /raid1
[root@oldboy ~]# mount /dev/md1  /raid1/
[root@oldboy ~]# cp /etc/passwd /raid1/

#-f 将设备视为故障
[root@oldboy ~]# mdadm  /dev/md1 -f  /dev/sde

#-r 移除损坏的设备:
[root@oldboy ~]# mdadm  -r /dev/md1 /dev/sde

#-a 重新在添加一块新热备盘
[root@oldboy ~]# mdadm  -a /dev/md1  /dev/sde

(3)RAID5

day20-Linux基础学习 磁盘管理(下)_第3张图片
RAID5.png
#软RAID5
#1.创建raid5
[root@oldboy ~]# mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 /dev/sdg /dev/sdh /dev/sdi /dev/sdj

#2.格式化RAID5,并挂载使用
[root@oldboy ~]# mkfs.xfs /dev/md5
[root@oldboy ~]# mkdir /raid5
[root@oldboy ~]# mount /dev/md5 /raid5/

#3.检查RAID详情
[root@oldboy ~]# mdadm -D /dev/md5

(4)RAID10

day20-Linux基础学习 磁盘管理(下)_第4张图片
RAID10.png

你可能感兴趣的:(day20-Linux基础学习 磁盘管理(下))