返回顶部

linux 磁盘管理

linux系统磁盘概念

磁盘的结构体系

01. 磁盘的物理结构 (外部结构 内部结构) 工作原理(先切换磁头 让磁头镜像运动) 

02. 磁盘阵列说明 (raid0 raid1 raid5 raid10 raid01)

磁盘阵列如何配置

  • 配置LVM L 逻辑 v 卷组 M 管理 逻辑卷管理 --> 实现可以随意调整磁盘分区大小

03. 磁盘分区概念

  • 给容量较小的磁盘进行分区: 小于2T fdisk
  • 给容量较大的磁盘进行分区: 大于2T parted

04. 磁盘格式化操作(创建文件系统)

05. 磁盘维护管理知识(如何使用磁盘 挂载使用)

磁盘层次结构详细说明--物理结构

磁盘的外部结构:

  • a 磁盘主轴 决定磁盘转速(rpm-round per minute)

  • 家用磁盘转速 7200 rpm 5400 rpm

  • 企业磁盘转速 15k rpm 10k rpm

  • b 磁盘盘片 用于存储数据

  • c 磁盘磁头 用于读取数据

  • d 磁盘接口 用于连接主板 用于连接阵列卡

磁盘的内部结构:

磁盘(Disk)

磁头(Head)

  • 作用说明:用来写入和读取数据的

  • 特点说明:盘面数量等于磁头数量

  • 工作原理:采用径向运动读写数据

磁道(Track)

  • 作用说明:用来存储用户数据

  • 特点说明:由多个同心圆组成

存储计数:最外面同心圆为0磁道

工作原理:磁盘默认按照磁道寻找数据

重点原理:磁头径向运动为机械运动(寻道) 性能小于固态硬盘(芯片)

原理特点:磁头机械运动较慢

扇区(Sector)

  • 作用说明:用来存储用户数据
  • 特点说明:磁盘存储最小单位
  • 存储计数:默认磁盘扇区从1扇区开始,扇区大小为512字节
  • 系统存储最小单位是block

柱面(Cylinder)

  • 作用说明:用来存储用户数据

  • 特点说明:不同盘面上相同的磁道组成(圆柱体)

  • 工作原理:磁盘默认按照柱面进行读写

  • 重点原理:磁头之间的切换为电子切换

  • 原理特点:磁头电子切换较快

单元块(Units)

  • 作用说明:用来存储用户数据

  • 特点说明:表示单个柱面大小

磁盘层次结构详细说明--磁盘阵列raid

阵列有什么用?

  • 1) 提高磁盘存储效率

  • 2) 提高磁盘存储安全

  • 3) 提高磁盘存储容量

阵列的配置方法:

  • raid 0 存储数据效率高 存储安全性低

  • raid 1 存储数据效率低 存储安全性高 (存两份

raid 5 存储数据效率较高 存储安全性较高 (a b c 是ab的校验,b坏了可以通过 a和c推出b)

说明: 至少有3块磁盘 raid5阵列中只能最多坏一块磁盘 损耗一块磁盘的容量

300G 300G 300G --> raid5 --> 600G

LVM 实现分区可以弹性缩融 和 扩容

磁盘层次结构详细说明--磁盘分区方法

预备知识:

系统启动引导记录--

  • MBR引导记录 用于引导磁盘空间小于2T

  • GPT引导记录 用于引导磁盘空间大于2T

分区方式
情况一:

  • 可以划分4个主分区 /dev/sda /dev/sda1 .. sda4 mount /dev/sda1 /mnt

情况二:

  • 可以划分3个主分区 /dev/sda /dev/sda1 .. sda3

  • 可以划分1个扩展分区 扩展分区无法直接使用

  • 需要在扩展分区基础上划分逻辑分区: /dev/sda5 /dev/sda6 ...

磁盘分区方法

第一个里程: 准备磁盘环境

准备了一块新的10G硬盘

 

第二个里程: 在系统中检查是否识别到了新的硬盘

检查是否有新的磁盘存储文件

ll /dev/sdb

第三个里程: 对磁盘进行分区处理(fdisk-- 进行分区处理 查看分区信息)

查看分区信息

fdisk -l

 对指定的磁盘进行分区

  • fdisk device

对一块磁盘进行分区

[root@oldboyedu ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x6c918c6d.

Command (m for help):   可以对磁盘进行分区了
Command action
d   delete a partition  *****
    删除分区
g   create a new empty GPT partition table
    创建一个新的空的GPT分区表(可以对大于2T磁盘进行分区)
l   list known partition types
    列出可以分区的类型???
m   print this menu
    输出帮助菜单
n   add a new partition  *****
    新建增加一个分区
p   print the partition table  *****
    输出分区的结果信息
q   quit without saving changes
    不保存退出
t   change a partition's system id
    改变分区的系统id==改变分区类型(LVM 增加swap分区大小)
u   change display/entry units
    改变分区的方式  是否按照扇区进行划分
w   write table to disk and exit  *****
    将分区的信息写入分区表并退出==保存分区信息并退出

开始分区:
a 规划分4个主分区 每个分区1G
分区操作过程
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +1G
Partition 1 of type Linux and of size 1 GiB is set

情况二: 磁盘分区实践--磁盘大于2T

第一个里程: 准备磁盘环境
虚拟主机中添加一块3T硬盘

第二个里程: 使用parted命令进行分区

mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
                                         创建一个分区表 (默认为mbr)
print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found
                                         partitions, or a particular partition
                                         显示分区信息
mkpart PART-TYPE [FS-TYPE] START END     make a partition
                                         创建一个分区
quit                                     exit program
                                         退出分区状态
rm NUMBER                                delete partition NUMBER
                                         删除分区

修改磁盘分区类型: mklabel gpt
分区方法: mkpart primary 0  2100G
第三个里程: 加载磁盘分区
partprobe /dev/sdc

格式化操作(创建文件系统)

ext3/4 centos6 

xfs centos7 格式效率较高 数据存储效率提升(数据库服务器)

创建文件系统: 磁盘分区存储数据的方式

指定文件系统的格式

  • mkfs.xfs /dev/sdb1 

  • mkfs -t xfs /dev/sdb2

文件系统的格式

使用 /dev/sdb1 创建一个 xfs 格式的文件系统

[root@oldboyedu /]# mkfs.xfs /dev/sdb2
meta-data=/dev/sdb2              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144, 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

磁盘层次结构--磁盘挂载应用

挂载文件系统

mount /dev/sdb1 /mnt/

检查确认

df -h

如何实现开机自动挂载

方法一: 将挂载命令放入/etc/rc.local

mount /dev/sdb1 /mnt

方法二: 在/etc/fstab文件中进行设置

UUID=e2fc8646-2b36-47cc-a35a-8c13208f4d0b /          xfs                 defaults            0             0
UUID=34fc45ba-c38c-42bc-a120-90f9d5dd2382 /boot      xfs                 defaults            0             0
UUID=62100743-6f8a-4f83-a37d-e2088c4830e2 swap       swap                defaults            0             0
挂载磁盘文件(存储设备)                   挂载点     指定文件系统类型   挂载的参数    是否备份磁盘  是否检查磁盘 
/dev/sdb1                                 /mount01                xfs     defaults        0 0

如何调整swap分区大小

增加虚拟磁盘的基本思路是:建立 swapfile——>格式化为swap格式——>启用该虚拟磁盘

dd 模拟创建出指定大小的文件

  • dd if=/dev/zero of=/tmp/oldboy.txt bs=10M count=100

  • 从哪取出数据 放到哪 占用1个block多少空间 总共使用多少个block

dd 命令的使用方法:

  • if 指定源(一般是写/dev/zero,它是UNIX系统特有的一个文件,它可以源源不断的提供0)

  • of 是指定目标文件

  • bs定义块的大小

  • count定义块的数量

查看现有 swap 容量

free -h

第一个历程: 将磁盘分出一部分空间给swap分区使用

dd if=/dev/zero of=/tmp/1G bs=100M count=10

第二个历程: 将指定磁盘空间作为swap空间使用

[root@oldboyedu tmp]# mkswap /tmp/1G 
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=6dd70684-dec2-48cf-8fd9-f311548bbb4f

第三个历程: 加载使用swap空间

swapon /tmp/1G

查看扩充后的 swap 容量

free -h

释放新增加的 swap 分区

swapoff /tmp/1G
rm /tmp/1G -f
free -h

企业磁盘异常案例

磁盘满的原因

  • a 真正数据太大存储过多 block满了

  • b 存储了大量小问题 inode满了

 

  

posted @ 2019-11-07 23:41  Crazymagic  阅读(174)  评论(0编辑  收藏  举报