linux 磁盘管理

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


posted @   宁采臣open  阅读(88)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示