1. 磁盘的结构体系
  2. 01. 磁盘的物理结构 (外部结构 内部结构) 工作原理(先切换磁头 让磁头镜像运动)
  3. 02. 磁盘阵列说明 (raid0 raid1 raid5 raid10 raid01)
  4. 磁盘阵列如何配置
  5. 配置LVM L 逻辑 v 卷组 M 管理 逻辑卷管理 --> 实现可以随意调整磁盘分区大小
  6. 03. 磁盘分区概念
  7. 给容量较小的磁盘进行分区: 小于2T fdisk
  8. 给容量较大的磁盘进行分区: 大于2T parted
  9. 04. 磁盘格式化操作(创建文件系统)
  10. 05. 磁盘维护管理知识(如何使用磁盘 挂载使用)

1、磁盘的外部结构: 看的见摸得到的结构

  1. 组成部分
  2. a 磁盘主轴 决定磁盘转速(rpm-round per minute
  3. 家用磁盘转速 7200 rpm 5400 rpm
  4. 企业磁盘转速 15k rpm 10k rpm
  5. b 磁盘盘片 用于存储数据
  6. c 磁盘磁头 用于读取数据
  7. d 磁盘接口 用于连接主板 用于连接阵列卡

2、磁盘的内部结构: 看不见的结构信息

  1. 组成部分:
  2. a 磁盘(Disk 磁盘或者分区的大小 = 柱面大小 * 柱面数
  3. b 磁头(Head)(一个柱面有255个)
  4. 作用说明:用来写入和读取数据的
  5. 特点说明:盘面数量等于磁头数量
  6. 工作原理:采用径向运动读写数据
  7. c 磁道(Track)每个磁道划分为63个扇区
  8. 作用说明:用来存储用户数据
  9. 特点说明:由多个同心圆组成
  10. 存储计数:最外面同心圆为0磁道
  11. 工作原理:磁盘默认按照磁道寻找数据
  12. 重点原理:磁头径向运动为机械运动(寻道) 性能小于固态硬盘(芯片)
  13. 原理特点:磁头机械运动较慢
  14. d 扇区(Sector
  15. 作用说明:用来存储用户数据
  16. 特点说明:磁盘存储最小单位
  17. 存储计数:默认磁盘扇区从1扇区开始,扇区大小为512字节
  18. 系统存储最小单位是block
  19. e 柱面(Cylinder 一个柱面的大小=255*63*512字节=8M
  20. 作用说明:用来存储用户数据
  21. 特点说明:不同盘面上相同的磁道组成(圆柱体)
  22. 工作原理:磁盘默认按照柱面进行读写
  23. 重点原理:磁头之间的切换为电子切换
  24. 原理特点:磁头电子切换较快
  25. f 单元块(Units
  26. 作用说明:用来存储用户数据
  27. 特点说明:表示单个柱面大小
  1. 阵列有什么用?
  2. 1) 提高磁盘存储效率
  3. 2) 提高磁盘存储安全
  4. 3) 提高磁盘存储容量
  5. 阵列的配置方法:
  6. raid 0 存储数据效率高 存储安全性低
  7. raid 1 存储数据效率低 存储安全性高
  8. raid 5 存储数据效率较高 存储安全性较高
  9. 说明: 至少有3块磁盘 raid5阵列中只能最多坏一块磁盘 损耗一块磁盘的容量
  10. 300G 300G 300G --> raid5 --> 600G
  11. LVM 实现分区可以弹性缩融 扩容
  1. 预备知识:
  2. a 系统启动引导记录--
  3. MBR引导记录 用于引导磁盘空间小于2T
  4. GPT引导记录 用于引导磁盘空间大于2T
  5. b 分区方式
  6. 情况一:
  7. 可以划分4个主分区 /dev/sda /dev/sda1 .. sda4 mount /dev/sda1 /mnt
  8. 情况二:
  9. 可以划分3个主分区 /dev/sda /dev/sda1 .. sda3
  10. 可以划分1个扩展分区 扩展分区无法直接使用
  11. 需要在扩展分区基础上划分逻辑分区: /dev/sda5 /dev/sda6 ...

 

  1. 情况一: 磁盘分区实践--磁盘小于2T
  2. 第一个里程: 准备磁盘环境
  3. 准备了一块新的10G硬盘
  4. 第二个里程: 在系统中检查是否识别到了新的硬盘
  5. 检查是否有新的磁盘存储文件
  6. [root@oldboyedu ~]# ll /dev/sdb
  7. brw-rw----. 1 root disk 8, 16 Apr 28 08:54 /dev/sdb
  8. 第三个里程: 对磁盘进行分区处理(fdisk-- 进行分区处理 查看分区信息)
  9. fdisk -l --- 查看分区信息
  10. [root@oldboyedu ~]# fdisk /dev/sdb
  11. Welcome to fdisk (util-linux 2.23.2).
  12. Changes will remain in memory only, until you decide to write them.
  13. Be careful before using the write command.
  14. Device does not contain a recognized partition table
  15. Building a new DOS disklabel with disk identifier 0x6c918c6d.
  16. Command (m for help): 可以对磁盘进行分区了
  17. Command action
  18. d delete a partition *****
  19. 删除分区
  20. g create a new empty GPT partition table
  21. 创建一个新的空的GPT分区表(可以对大于2T磁盘进行分区)
  22. l list known partition types
  23. 列出可以分区的类型???
  24. m print this menu
  25. 输出帮助菜单
  26. n add a new partition *****
  27. 新建增加一个分区
  28. p print the partition table *****
  29. 输出分区的结果信息
  30. q quit without saving changes
  31. 不保存退出
  32. t change a partition\'s system id
  33. 改变分区的系统id==改变分区类型(LVM 增加swap分区大小)
  34. u change display/entry units
  35. 改变分区的方式 是否按照扇区进行划分
  36. w write table to disk and exit *****
  37. 将分区的信息写入分区表并退出==保存分区信息并退出
  38. 开始分区:
  39. a 规划分4个主分区 每个分区1G
  40. 分区操作过程
  41. Command (m for help): n
  42. Partition type:
  43. p primary (0 primary, 0 extended, 4 free)
  44. e extended
  45. Select (default p): p
  46. Partition number (1-4, default 1): 1
  47. First sector (2048-20971519, default 2048):
  48. Using default value 2048
  49. Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +1G
  50. Partition 1 of type Linux and of size 1 GiB is set
  51. 分区操作检查:
  52. Command (m for help): p
  53. Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
  54. Units = sectors of 1 * 512 = 512 bytes
  55. Sector size (logical/physical): 512 bytes / 512 bytes
  56. I/O size (minimum/optimal): 512 bytes / 512 bytes
  57. Disk label type: dos
  58. Disk identifier: 0x3069f1dd
  59. Device Boot Start End Blocks Id System
  60. /dev/sdb1 2048 2099199 1048576 83 Linux
  61. /dev/sdb2 2099200 4196351 1048576 83 Linux
  62. /dev/sdb3 4196352 6293503 1048576 83 Linux
  63. /dev/sdb4 6293504 8390655 1048576 83 Linux
  64. Command (m for help): n
  65. If you want to create more than four partitions, you must replace a
  66. primary partition with an extended partition first.
  67. b 规划分3个主分区 1个扩展分区 每个主分区1G 剩余都给扩展分区
  68. 删除分区
  69. Command (m for help): d
  70. Partition number (1-4, default 4): 1
  71. Partition 1 is deleted
  72. 创建逻辑分区
  73. Command (m for help): p
  74. Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
  75. Units = sectors of 1 * 512 = 512 bytes
  76. Sector size (logical/physical): 512 bytes / 512 bytes
  77. I/O size (minimum/optimal): 512 bytes / 512 bytes
  78. Disk label type: dos
  79. Disk identifier: 0x3069f1dd
  80. Device Boot Start End Blocks Id System
  81. /dev/sdb1 2048 2099199 1048576 83 Linux
  82. /dev/sdb2 2099200 4196351 1048576 83 Linux
  83. /dev/sdb3 4196352 6293503 1048576 83 Linux
  84. /dev/sdb4 6293504 20971519 7339008 5 Extended 有了扩展分区才能逻辑分区
  85. Command (m for help): n
  86. All primary partitions are in use
  87. Adding logical partition 5
  88. First sector (6295552-20971519, default 6295552):
  89. Using default value 6295552
  90. Last sector, +sectors or +size{K,M,G} (6295552-20971519, default 20971519): +1G
  91. Partition 5 of type Linux and of size 1 GiB is set
  92. Command (m for help): p
  93. Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
  94. Units = sectors of 1 * 512 = 512 bytes
  95. Sector size (logical/physical): 512 bytes / 512 bytes
  96. I/O size (minimum/optimal): 512 bytes / 512 bytes
  97. Disk label type: dos
  98. Disk identifier: 0x3069f1dd
  99. Device Boot Start End Blocks Id System
  100. /dev/sdb1 2048 2099199 1048576 83 Linux
  101. /dev/sdb2 2099200 4196351 1048576 83 Linux
  102. /dev/sdb3 4196352 6293503 1048576 83 Linux
  103. /dev/sdb4 6293504 20971519 7339008 5 Extended
  104. /dev/sdb5 6295552 8392703 1048576 83 Linux
  105. 第四个里程: 保存退出,让系统可以加载识别分区信息
  106. 让系统可以加载识别分区文件
  107. partprobe /dev/sdb

情况一: 磁盘分区实践–磁盘小于2T

 

  1. 情况二: 磁盘分区实践--磁盘大于2T
  2. 第一个里程: 准备磁盘环境
  3. 虚拟主机中添加一块3T硬盘
  4. 第二个里程: 使用parted命令进行分区
  5. mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
  6. 创建一个分区表 (默认为mbr)
  7. print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found
  8. partitions, or a particular partition
  9. 显示分区信息
  10. mkpart PART-TYPE [FS-TYPE] START END make a partition
  11. 创建一个分区
  12. quit exit program
  13. 退出分区状态
  14. rm NUMBER delete partition NUMBER
  15. 删除分区
  16. 修改磁盘分区类型: mklabel gpt
  17. 分区方法: mkpart primary 0 2100G
  18. 第三个里程: 加载磁盘分区
  19. partprobe /dev/sdc

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

 

 

  1. mkfs.xfs /dev/sdb1
  2. mkfs -t xfs /dev/sdb2
  3. 创建文件系统: 磁盘分区存储数据的方式
  4. ext3/4 centos6
  5. xfs centos7 格式效率较高 数据存储效率提升(数据库服务器)
  6. [root@oldboyedu /]# mkfs.xfs /dev/sdb2
  7. meta-data=/dev/sdb2 isize=512 agcount=4, agsize=65536 blks
  8. = sectsz=512 attr=2, projid32bit=1
  9. = crc=1 finobt=0, sparse=0
  10. data = bsize=4096 blocks=262144, imaxpct=25
  11. = sunit=0 swidth=0 blks
  12. naming =version 2 bsize=4096 ascii-ci=0 ftype=1
  13. log =internal log bsize=4096 blocks=2560, version=2
  14. = sectsz=512 sunit=0 blks, lazy-count=1
  15. realtime =none extsz=4096 blocks=0, rtextents=0

 

 

  1. mount /dev/sdb1 /mount01
  2. mount /dev/sdb2 /mount02
  3. 检查确认:
  4. [root@oldboyedu /]# df -h
  5. /dev/sdb1 1014M 33M 982M 4% /mount01
  6. /dev/sdb2 1014M 33M 982M 4% /mount02

    文件查看方式

    cat /proc/mounts
    /dev/sda1 /boot xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0

  1. 如何实现开机自动挂载:
  2. 方法一: 将挂载命令放入/etc/rc.local
  3. [root@oldboyedu /]# tail -2 /etc/rc.local
  4. mount /dev/sdb1 /mount01
  5. mount /dev/sdb2 /mount02
  6. 系统开机加载rc.local流程:
  7. 加载/etc/rc.local --> /etc/rc.d/rc.local --> 以绝对路径方式执行
  8. /etc/rc.d/rc.local
  9. chmod +x /etc/rc.d/rc.local
  10. 方法二: /etc/fstab文件中进行设置
  11. UUID=e2fc8646-2b36-47cc-a35a-8c13208f4d0b / xfs defaults 0 0
  12. UUID=34fc45ba-c38c-42bc-a120-90f9d5dd2382 /boot xfs defaults 0 0
  13. UUID=62100743-6f8a-4f83-a37d-e2088c4830e2 swap swap defaults 0 0
  14. 挂载磁盘文件(存储设备) 挂载点 指定文件系统类型 挂载的参数 是否备份磁盘 是否检查磁盘
  15. mount 挂载的磁盘文件 挂载点
  16. [root@oldboyedu ~]# tail -2 /etc/fstab
  17. /dev/sdb1 /mount01 xfs defaults 0 0
  18. UUID=144738ff-0da3-4162-b574-40af379cbe9e /mount02 xfs defaults 0 0

 

 

 

 

  1. 1) 磁盘满的情况 No space left on device
  2. a 存储的数据过多了
  3. 模拟磁盘空间不足
  4. dd if=/dev/zero of=/tmp/oldboy.txt bs=10M count=100
  5. block存储空间不足了
  6. 解决方式:
  7. 1.删除没用的数据
  8. 2.找出大的没用的数据
  9. find / -type f -size +xxx
  10. du -sh /etc/sysconfig/network-scripts/*|sort -h
  11. 补充: 按照数值排序命令
  12. [root@oldboyedu mount01]# cat num.txt |sort -n
  13. # 1
  14. # 10
  15. # 11
  16. # 12
  17. # 2
  18. # 3
  19. # 6
  20. # 9
  21. [root@oldboyedu mount01]# cat num.txt |sort -n -k2
  22. # 1
  23. # 2
  24. # 3
  25. # 6
  26. # 9
  27. # 10
  28. # 11
  29. # 12
  30. b 存储的数据过多了
  31. inode存储空间不足了: 出现了大量小文件

 

  1. 第一个历程: 将磁盘分出一部分空间给swap分区使用
  2. dd if=/dev/zero of=/tmp/1G bs=100M count=10
  3. 第二个历程: 将指定磁盘空间作为swap空间使用
  4. [root@oldboyedu tmp]# mkswap /tmp/1G
  5. Setting up swapspace version 1, size = 1023996 KiB
  6. no label, UUID=6dd70684-dec2-48cf-8fd9-f311548bbb4f
  7. 第三个历程: 加载使用swap空间
  8. [root@oldboyedu tmp]# swapon /tmp/1G
  9. swapon: /tmp/1G: insecure permissions 0644, 0600 suggested.
  10. [root@oldboyedu tmp]# free -h
  11. total used free shared buff/cache available
  12. Mem: 1.9G 225M 575M 9.6M 1.2G 1.5G
  13. Swap: 2.0G 0B 2.0G
  14. [root@oldboyedu tmp]# swapoff /tmp/1G
  15. [root@oldboyedu tmp]# free -h
  16. total used free shared buff/cache available
  17. Mem: 1.9G 224M 576M 9.6M 1.2G 1.5G
  18. Swap: 1.0G 0B 1.0G
  19. [root@oldboyedu tmp]# rm /tmp/1G -f

 

 Linux inode

 https://www.cnblogs.com/llife/p/11470668.html

 

版权声明:本文为linux985原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/linux985/p/12518286.html