linux 磁盘管理
一. 磁盘相关
1.1 磁盘相关理论
1)raid相关
- raid 更好的管理服务器硬盘
- raid是物理卡 无需搭建。
- 获得更高的容量
- 获取更高的**性能****
- 获取更高的冗余(安全性)
raid级别 |
至少几块硬盘 |
容量 |
性能 |
冗余 |
应用场景 |
raid 0 (条带) |
至少一块硬盘 |
所有硬盘总和 |
最快的 |
只要坏一块就报废 |
数据库从库,储存从库 |
raid 1 (镜像) |
只能两块硬盘 |
所有磁盘总和一半 |
写入较慢,读取速度相当于是1块硬盘速度 |
100% |
系统盘监控服务器 |
raid 5 |
至少3块硬盘 |
损失1块硬盘容量 |
读取速度ok,写入较慢 |
最多坏1块 |
普遍数据库存储,访问量不高的 |
raid 10 |
至少4块硬盘,2的倍数增加 |
所有容量的一般 |
读写速度很快 |
可以损坏一半,但是不能在一组 |
高并发或者高访问量的数据库 存储 |
|
|
|
|
|
|
2)基本单位
- 扇区是磁盘读取的基本单位
- block是系统层面上面读写数据的单位
3)磁盘分区表
446 |
64 |
2 |
主引导记录 MBR(Master BootRecord) |
磁盘分区表,磁盘分区信息 |
55AA,分区信息结束 |
传统引导系统启动的程序 |
DPT |
DPT |
|
磁盘分区表 |
磁盘分区表 |
- 主分区:存放数据,一般一定要有
- 扩展分区: 用来给逻辑分区,创建空间
- 逻辑分区: 在扩展分区下面,进行创建,使用扩展分区空间.
4) gpt和mbr
- mbr升级版
- gpt 主分区足够用
- mbr 仅仅支持最大2tb硬盘, gpt支持大容量硬盘 2tb以上
gpt |
mbr |
主分区数量不限 |
主分区最多4个,扩展分区1个 |
可以额外支持大容量硬盘2tb以上 |
mbr只能支持2tb以内硬盘 |
6.2 磁盘相关命令
#01 df 命令查看**磁盘容量**,不加参数以k为单位
df -i #查看inode使用情况
df -h #以G或者T或者M人性化方式显示
df -T #查看磁盘分区类型 (文件系统类型)
//使用df命令查看磁盘,下面分别介绍每列什么含义
[root@oldboyedu ~]# df -h
//设备名称 //磁盘大小 已用大小 可用大小 使用百分比 挂载点
Filesystem Size Used Avail Use%
Mounted on
/dev/vda1 62G 1.5G 58G 3% /
#02 lsblk 查看**分区情况**
[root@aliyun ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
#04 du 命令查看**目录或者文件的容量**,不加参数以k为单位
du -sh opt #人性化输出显示大小
-s: summary 总结 ,汇总 列出总和
-h:人性化显示容量信息 人类可读 ls/df/du/sort
##案例01:找出/根下面 占用最大容量的目录或者文件?
[root@aliyun ~]# du -s /* | sort -nr -k1
7856104 /var
3292244 /usr
2982544 /node
2157260 /root
2142692 /code
经过排查 /var目录 占用最多
#05 iotop 显示当前磁盘**读取速度**
iotop #显示磁盘io (output/input 读写)
iotop -o 只显示进行读写的进程信息
dd if=/dev/zero of=/tmp/big bs=1k count=10000
二. 磁盘挂载三部曲
磁盘使用三部曲 |
|
|
磁盘分区 |
fdisk /parted/gdisk |
|
格式化 |
创建文件系统(装修下磁盘分区可以存放文件). mbr/gpt |
|
挂载 |
给设备一个入口, 给磁盘分区装上门窗,给用户使用与访问 |
|
1.1 分区
#第1个里程碑=磁盘分区- 创建磁盘分区 仅1个 即可 使用磁盘所有空间
##
fdisk -l 查看分区信息
#01 开始分区 创建一个主分区 磁盘给10G
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x000f915d 创建新的 DOS 磁盘标签
命令(输入 m 获取帮助):p #查看分区信息
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000f915d
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n #创建新分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #p 代表创建分区类型是 主分区
分区号 (1-4,默认 1): #回车默认即可
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):p #p 查看分区信息 检查结果
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000f915d
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20971519 10484736 83 Linux #看到这个代表刚才的 创建成功
命令(输入 m 获取帮助):w #w 保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
#创建完成
1.2 格式化
# 第2个里程碑-格式化 创建文件系统 make file system mkfs
# CentOS 7 默认文件系统格式是 .xfs
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655296 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621184, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# echo $?
0
解释下:
echo $? 查看上个命令执行结果是否正常 0代表正确(非0都是错误)
1.3 挂载
#第3个里程碑-挂载(临时挂载)
# 没有挂载的设备 相当于没有窗户 没有门的监狱 无法访问与使用
mount 设备 入口挂载点
例如: /dev/sdb1 /mnt/zhangbingbing
---
#01 创建挂载目录
[root@localhost ~]# mkdir /mnt/zhangbingbing
#02 开始挂载
[root@localhost ~]# mount /dev/sdb1 /mnt/zhangbingbing/
#03 检查
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 12M 1.7G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.3G 16G 8% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 351M 0 351M 0% /run/user/0
/dev/sdb1 10G 33M 10G 1% /mnt/zhangbingbing
1.4 永久挂载
#永久挂载
#方法1 /etc/rc.local专门用来开机启动各种服务,命令,挂载....
#方法2 /etc/fstab 挂载专用文件 (开机自动挂载)
##方法1 通用写法 把挂载命令写入 /etc/rc.d/rc.local 开机自启动文件内
#01 挂载命令 写入开机自启文件内
[root@localhost ~]# echo "mount /dev/sdb1 /mnt/zhangbingbing/" >>/etc/rc.d/rc.local
[root@localhost ~]# grep -v -E '^$|^#' /etc/rc.d/rc.local
mount /dev/sdb1 /mnt/zhangbingbing/
#02 需要给文件执行权限
[root@localhost ~]# chmod +x /etc/rc.d/rc.local
#03 重启服务器 检查
reboot 重启检查
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 12M 1.7G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.3G 16G 8% /
/dev/sda1 1014M 150M 865M 15% /boot
/dev/sdb1 10G 33M 10G 1% /mnt/zhangbingbing
tmpfs 351M 0 351M 0% /run/user/0
##检查项目 /dev/sdb1 已经被挂载
##方法2 专业写法 /etc/fstab 开机自动挂载的信息表
# 书写格式
blkid #查询设备 uuid
#01 写入配置文件
[root@localhost ~]# vi /etc/fstab
/dev/sdb1 /mnt/zhangbingbing xfs defaults 0 0
解释下:
/dev/sdb1 设备名称
/mnt/zhangbingbing 挂载点
xfs 文件系统类型
defaults 挂载选项
0 是否备份
0 是否开机检查
1.5 磁盘卸载
##基本语法
umount /mnt/zhangbingbing
解释下:umount 卸载点
#01 挂载磁盘
[root@localhost ~]# mount /dev/sdb1 /mnt/zhangbingbing/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 12M 1.7G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.3G 16G 8% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 351M 0 351M 0% /run/user/0
/dev/sdb1 10G 33M 10G 1% /mnt/zhangbingbing
#02 卸载 /mnt/zhangbingbing
[root@localhost ~]# umount /mnt/zhangbingbing
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 12M 1.7G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.3G 16G 8% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 351M 0 351M 0% /run/user/0