Day19-磁盘管理2(gdisk分区命令、mount挂载命令,swap交换分区,磁盘阵列RAID)

Hyman's Road of Learning Linux.

磁盘的基本分区 gdisk

前面我们已经了解到fdisk分区,但fdisk不支持给高于2TB的磁盘进行分区。如果有单块盘高于2TB,建议使用Gdisk进行分区。

使用gdisk进行磁盘分区

1.查看gdisk命令属于哪个软件包
root@Hyman[15:14:48]~# yum provides gdisk
2.安装gdisk分区工具
root@Hyman[15:14:13]~# yum install gfisk -y
3.使用gdisk进行磁盘分区
root@Hyman[15:36:32]~# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help): n     #创建新分区
Partition number (1-128, default 1): 
First sector (34-8589934558, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-8589934558, default = 8589934558) or {+-}size{KMGTP}:         #将所有的都给这个分区
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

Command (? for help): p     #打印查看
Disk /dev/sdb: 8589934592 sectors, 4.0 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): D38064E1-E437-4ACE-AD86-9E99CC7351D2
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 8589934558
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      8589934558   4.0 TiB     8300  Linux filesystem

Command (? for help): w     #保存分区

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y        #确认
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
4.创建完成后,可以尝试检查磁盘是否为gpt格式
root@Hyman[15:40:27]~# fdisk /dev/sdb -l | grep type
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Disk label type: gpt
5.安装parted,刷新内核立即生效,无需重启
root@Hyman[15:40:44]~# yum install parted -y
13'root@Hyman[15:41:31]~# partprobe /dev/sdb
6.使用mkfs命令格式化磁盘,给后面使用。
root@Hyman[15:41:49]~# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=268435391 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1073741563, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

磁盘挂载方式Mount

前面我们已经提到过,如果需要使用磁盘的空间,需要准备一个空的目录作为挂载点,与该设备进行关联。mount主要是为文件系统指定一个访问入口。
PS: 类似我的商场没有门,那么就无法进入购买商品,此时通过mount命令可以创建一个入口,给超市安装一个门。

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

选项 含义
-t 指定文件系统挂在分区
-a 挂载/etc/fstab中的配置文件
-o 指定挂载参数
挂载/dev/sdb1至db1目录
root@Hyman[15:43:12]~# mkdir /sdb1
root@Hyman[15:47:35]~# mount -t xfs /dev/sdb1 /sdb1/

2.挂载的磁盘,如果不想使用可以使用umount进行卸载。

选项 含义
-l 强制卸载
卸载目录方式
root@Hyman[15:47:56]~# umount /sdb1/
卸载设备方式
root@Hyman[15:49:45]~# umount /dev/sdb1
umount不能卸载的情况
root@Hyman[15:49:55]~# mount -t xfs /dev/sdb1 /sdb1/
root@Hyman[15:55:07]~# cd /sdb1/
root@Hyman[15:55:11]/sdb1# umount /dev/sdb1
umount: /sdb1: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
root@Hyman[15:55:18]/sdb1# umount -l /dev/sdb1

PS: 如上情况解决办法有两种, 1.切换至其他目录 2.使用'-l'选项强制卸载

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

使用blkid命令获取各设备的UUID
root@Hyman[15:56:56]~# blkid | grep "sdb1"
/dev/sdb1: UUID="f1ae79b4-dd4c-45be-88f7-0ee522c00d4c" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="65e619bd-e84d-42cf-8f28-fc8f9b977bac"
使用UUID挂载磁盘sdb1分区至于db1, 测试挂载
root@Hyman[15:58:33]~# mount UUID="f1ae79b4-dd4c-45be-88f7-0ee522c00d4c" /sdb1
写入/etc/fstab中,实现开机自动挂载
root@Hyman[15:59:24]~# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jul 25 00:23:54 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=d419051a-3782-4dae-a69c-090f264ec988 /                       xfs     defaults        0 0
UUID=9939e9f8-8c48-4a4d-aa66-a867b7d70b52 /boot                   xfs     defaults        0 0
UUID=89c8b810-88f4-4fe3-899e-457b926d14cd swap                    swap    defaults        0 0
#
UUID="f1ae79b4-dd4c-45be-88f7-0ee522c00d4c" /sdb1         xfs     defaults        0 0
加载fstab配置文件, 同时检测语法是否有错误
root@Hyman[16:01:54]~# mount -a
/etc/fstab配置文件编写格式
要挂载的设备 挂载点(入口) 文件系统类型 挂载参数 是否备份 是否检查
/dev/sdb1 /sdb1 xfs defaults 0 0
  • 第四列:挂载参数。挂载参数有很多,在这块我们了解即可,不必深究。
参数 含义
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等默认参数的设定
  • 第五列:是否进行备份。通常这个参数的值为0或者1
选项 含义
0 代表不做备份
1 代表要每天进行备份操作
2 代表不定日期的进行备份操作
  • 第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整
选项 含义
0 不要检验磁盘是否有坏道
1 检验
2 校验 (当1级别检验完成之后进行2级别检验)

swap交换分区 (磁盘充当内存)

内存不够,也没有配置swap会出现什么情况?

  • 系统会出现oom机制, out of memroy
Aug 20 11:13:43 oldboy kernel: Out of memory: Kill process 7910 (dd) score 785 or sacrifice child Aug 20 11:13:43 oldboy kernel: Killed process 7910 (dd) total-vm:1746408kB, anon-rss:1638504kB, filerss:0kB, shmem-rss:0kB

内存不够,有配置swap又会出现什么情况?

  • 1.会使用swap充当内容使用,防止系统出现oom故障
  • 2.如果使用了swap,系统会变得特别的卡

Swap分区在系统的物理内存不够时,将硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。
PS: 当物理内存不够时会随机kill占用内存的进程,从而产生oom,临时使用swap可以解决。

创建分区,并格式化为swap分区。

root@Hyman[16:31:51]~# fdisk /dev/sdb
root@Hyman[16:32:09]~# mkswap /dev/sdb1
Setting up swapspace version 1, size = 10485756 KiB
no label, UUID=d0bc2710-591a-4628-9349-2418732aa0a9

查看当前swap分区大小,然后进行扩展和缩小

root@Hyman[16:21:01]~# free -m
              total        used        free      shared  buff/cache   available
Mem:            972         136         436           7         399         648
Swap:          1023           0        1023
扩展swap分区大小
root@Hyman[16:32:29]~# swapon /dev/sdb1
root@Hyman[16:32:56]~# free -m
              total        used        free      shared  buff/cache   available
Mem:            972         137         695           7         140         674
Swap:         11263           0       11263
swapon -a代表激活所有的swap
root@Hyman[16:33:02]~# swapon -a
缩小swap分区大小
root@Hyman[16:33:20]~# swapoff /dev/sdb1
root@Hyman[16:33:46]~# free -m
              total        used        free      shared  buff/cache   available
Mem:            972         129         703           7         140         682
Swap:          1023           0        1023
代表关闭所有的swap
root@Hyman[16:33:49]~# swapoff -a
root@Hyman[16:34:11]~# free -m
              total        used        free      shared  buff/cache   available
Mem:            972         128         703           7         140         683
Swap:             0           0           0
检查当前swap分区有哪些设备
root@Hyman[16:35:58]~# swapon -s
Filename                Type        Size    Used    Priority
/dev/sda2                               partition   1048572 0   -2
/dev/sdb1                               partition   10485756    0   -3

PS: 如果希望swap开机自动挂载,将swap信息追加至/etc/fstab即可。

磁盘阵列

什么是磁盘阵列

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

RAID

  • 提高性能
  • 保证安全

RAID模式

1.RAID0条带卷
Day19-磁盘管理2(gdisk分区命令、mount挂载命令,swap交换分区,磁盘阵列RAID)_第1张图片
RAID0条带卷

RAID0条带卷,最少凉快盘。读写性能好,但没有容错机制。坏一块磁盘数据全丢。主要应用在web服务器。

RAID1镜像卷
Day19-磁盘管理2(gdisk分区命令、mount挂载命令,swap交换分区,磁盘阵列RAID)_第2张图片
RAID1镜像卷

RAID1镜像卷,写入性能一般、读取性能快、有容错机制,但磁盘有50%浪费。

RAID5校验卷
Day19-磁盘管理2(gdisk分区命令、mount挂载命令,swap交换分区,磁盘阵列RAID)_第3张图片
RAID5校验卷

RAID校验卷,至少3块相同大小的盘,并且只允许坏一块盘,有效空间1/3,读写速度快,坏掉一块盘,读速度会慢。

RAID10
Day19-磁盘管理2(gdisk分区命令、mount挂载命令,swap交换分区,磁盘阵列RAID)_第4张图片
RAID10

RAID10是RAID1和RAID0的结合体。读写快,有冗余,但是空间浪费一半。

你可能感兴趣的:(Day19-磁盘管理2(gdisk分区命令、mount挂载命令,swap交换分区,磁盘阵列RAID))