本章节主要解释磁盘分区,磁盘阵列等磁盘相关知识。
磁盘分区
为主机分别添加一个1T
和4T
的磁盘。
可以通过查看/dev
下面的设备或者lsblk
命令确认磁盘是否添加成功。
|
|
lsblk
是一个用于列出块设备信息的命令。
|
|
分区概念
在Linux
中,分区分为主分区,扩展分区和逻辑分区。
主分区:在Linux中,分区表有64
个字节的限制,而每个分区条目的大小为16
字节,所以最多只能有4
个分区,这4
个分区就是我们说的主分区。
扩展分区:为了突破一个物理硬盘只能有4个分区的限制,引入了扩展分区。扩展分区和主分区的地位相当,但是扩展分区本身不能被直接使用,然而可以被继续划分成多个逻辑分区。
逻辑分区:逻辑分区可以有任意多个,但是不能独立存在。
fdisk工具
fdisk
仅可针对2T
以下的磁盘进行分区操作。
通过fdisk
创建主分区。
|
|
创建扩展分区。
|
|
创建逻辑分区。
|
|
保存分区信息。
|
|
查看分区信息。
|
|
格式化磁盘。ext4
和xfs
是最常用的文件系统,如果需要处理大文件和大容量存储,并且对性能要求较高,XFS
可能是更合适的选择。对于一般用途和通用性能要求,ext4
是一个可靠且广泛支持的选项。
|
|
挂载。
[root@localhost ~]# mkdir /sdb1
[root@localhost ~]# mkdir /sdb5
[root@localhost ~]# mount /dev/sdb1 /sdb1
[root@localhost ~]# mount /dev/sdb5 /sdb5
查看挂载后的空间。
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 19G 33M 100% /
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 127M 888M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb1 10G 33M 10G 1% /sdb1
/dev/sdb5 20G 33M 20G 1% /sdb5
gdisk工具
大于2T
的磁盘,需要使用gdisk
进行分区。
安装gdisk
。
|
|
通过gdisk
对磁盘进行分区。
|
|
查看分区信息。
[root@localhost ~]# lsblk
sdc 8:32 0 4T 0 disk
├─sdc1 8:33 0 2T 0 part
└─sdc2 8:34 0 2T 0 part
格式化分区。
[root@localhost ~]# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1 isize=512 agcount=4, agsize=134217728 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=536870912, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=262144, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mkfs.xfs /dev/sdc2
meta-data=/dev/sdc2 isize=512 agcount=4, agsize=134217663 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=536870651, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=262143, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
创建挂载点,并将分区挂载到指定的目录。
[root@localhost ~]# mkdir -p /data/sdc1 /data/sdc2
[root@localhost ~]# mount /dev/sdc1 /data/sdc1
[root@localhost ~]# mount /dev/sdc2 /data/sdc2
检查挂载详情。
[root@localhost ~]# df -h
/dev/sdc1 2.0T 33M 2.0T 1% /data/sdc1
/dev/sdc2 2.0T 33M 2.0T 1% /data/sdc2
挂载文件系统
挂载与卸载
mount
命令用于将文件系统挂载到指定的挂载点上,使得该文件系统可以在指定位置访问。
通过设备名称或者UUID
挂载设备。
|
|
卸载设备。
[root@localhost ~]# umount /dev/sdc1
[root@localhost ~]# umount /data/sdc2
设置开机自动挂载
查看设备的UUID
。
[root@localhost ~]# blkid /dev/sdc1
/dev/sdc1: UUID="fb268812-69fc-4b4f-b4e6-1dd60351059e" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="e176d454-9b18-49d9-873b-477ab33943e5"
[root@localhost ~]# blkid /dev/sdc2
/dev/sdc2: UUID="a78ece78-4570-4555-bbd5-7f3c723a5f56" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="569cd012-bb0a-4a87-8471-e056ced2d214"
编辑/etc/fstab
文件,添加要挂载的设备信息。
[root@localhost ~]# tail -2 /etc/fstab
UUID=fb268812-69fc-4b4f-b4e6-1dd60351059e /data/sdc1 xfs defaults 0 0
UUID=a78ece78-4570-4555-bbd5-7f3c723a5f56 /data/sdc2 xfs defaults 0 0
加载/etc/fstab
文件,并同时检验语法是否存在错误。
[root@localhost ~]# mount -a
重启服务器,验证结果。
[root@localhost ~]# reboot
[root@localhost ~]# df -h
/dev/sdc1 2.0T 33M 2.0T 1% /data/sdc1
/dev/sdc2 2.0T 33M 2.0T 1% /data/sdc2
/etc/fstab
文件含义。
要挂载的设备 | 挂载点 | 文件系统 | 挂载参数 | 是否备份 | 是否检查 |
---|---|---|---|---|---|
UUID= | /data/sdc2 | xfs | defaults | 0 | 0 |
swap交换分区
当内存不够时,swap
分区会充当内存,防止系统出现OOM
(OutOfMemroy)
故障。 但是如果使用了swap
分区,系统会变的特别卡。
对swap
分区进行操作。
创建分区,并格式化为swap
格式。
[root@localhost ~]# fdisk /dev/sdb
[root@localhost ~]# lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 300G 0 disk
└─sdb1 8:17 0 1G 0 part
[root@localhost ~]# mkswap /dev/sdb1
mkswap: /dev/sdb1: warning: wiping old xfs signature.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=ff384ce5-9132-4f52-8af8-be2c8724057a
扩展swap
分区。
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 972 95 739 7 137 718
Swap: 799 0 799
[root@localhost ~]# swapon /dev/sdb1
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 972 95 738 7 137 717
Swap: 1823 0 1823
缩小swap
分区。
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 972 103 691 7 177 688
Swap: 1823 0 1823
[root@localhost ~]# swapoff /dev/sdb1
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 972 102 692 7 177 689
Swap: 799 0 799
关闭所有的swap
。
[root@localhost ~]# swapoff -a
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 972 103 691 7 177 688
Swap: 0 0 0
检查当前swap
分区有哪些设备。
[root@localhost ~]# swapon /dev/sdb1
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 819196 0 -2
/dev/sdb1 partition 1048572 0 -3
磁盘阵列
RAID0:条带卷,最少需要两块硬盘,读写性能好,但是没有容错机制。
RAID1:镜像卷,读写性能一般,有容错机制,磁盘利用率为50%。
RAID5:校验卷,至少3块硬盘,仅允许坏一块硬盘,硬盘的利用率为(n-1)/n,读写较快。
RAID10:RAID0和RAID1的组合,具有RAID0的读写速度和RAID1的容错机制,但是磁盘利用率为50%。