磁盘管理

第1章 磁盘知识体系

 

1.1 硬盘

企业sas(默认)

生产环境/线上环境-sas   15k转 300g-600g  10k转 108t    7.2k转  8t

sata(内部 线下环境)

线下环境使用(公司内部-备份)    1t 2t

1.2 buffer和cache区别

写buffer 写缓冲

读cache 读缓存

1.3 如何查询内存使用情况

[root@dzc ~]# free -h

             total       used       free     shared    buffers    cached

Mem:        980M       448M     532M   232K     80M       187M

-/+ buffers/cache:           180M       800M    #这才是真正的内存

Swap:         767M        0B       767M

内存是否被linux吃了?

  1. linux特点:把你使用过得命令 程序 临时存放在了 内存中的buffer/cache区 缓存区
  2. 方便下次使用
  3. 使用其他命令的时候 这些区域会自动被清理

系统真正剩余的内存

free +buffers + cached

1.4 硬盘选购小结:

线上的业务,用sas磁盘。

线下的业务,用sata磁盘,磁带库。

线上高并发、小容量(很多人都想看的图片)的业务,ssd磁盘。

成本思想:根据数据的访问热度,智能分析分层储存。sata+ssd

一台服务器中

把用户经常使用图片 存放在ssd里面  60g

不经常使用的放在 sata 500g

【案例】高并发线上服务器使用sata硬盘

网站宕机,数据库,连续宕机

高并发/线上服务器 sas硬盘+raid 10

1.5 什么是CDN

饭店 - 总店

南极

北极

如果用户在南极----通过南极分店 送货

用户在哪里 就近选择分店然后送货

第2章 磁盘的内部组成

2.1 磁盘相关的名词

 disk ----磁盘

head -----磁头

track-----磁道

sector -----扇区

磁盘上面最小的单位 一个扇区512字节

cylinder -----柱面

units ---------单元块(一个柱面的大小)

2.2 计算磁盘的容量

一个柱面的大下*柱面的数量

[root@dzc ~]# fdisk -l

 

Disk /dev/sda: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512

I/O size (minimum/optimal): 512 bytes / 512 byte

Disk identifier: 0x0003d54e

255 heads     255个磁头

63 sectors/track  每个 磁道上面有63个扇区

1305 cylinders   一共有1305个柱面

Units         柱面的大小 单元块

第3章 raid

3.1 raid 磁盘阵列

  1. 你可以获得更大的容量,更安全,更快
  2. 服务器上的硬盘,不做raid是无法使用的。

3.2 raid级别

3.2.1 raid0 条带

优点:把所有硬盘的容量加在一起,读写速度是一块硬盘的n倍.

缺点:一块硬盘坏了,所有数据无法使用。

数量:需要至少1块 硬盘

使用背景:数据不是很重要,追求性能 数据库的从库(小弟) 集群的节点

3.2.2 raid1 镜像

优点:安全 可以损失一块,100%冗余

缺点:写入速度比较慢,读取的时候还可以,成本高

数量:只能是两块硬盘

使用背景:对于数据的安全比较高,但是不需要太多的性能

3.2.3 raid5 既有raid0性能 raid1冗余

优点:奇偶校验,冗余 最多损坏一块硬盘 损失一块硬盘的容量

缺点:读取的时候还可以,写入比较慢

数量:至少三块

使用背景:通用

3.2.4 raid10

优点:读写速度快,冗余 最多可以损坏一半

缺点:成本高 容量可以使用所有硬盘的一半

数量:最少4块硬盘 硬盘的数量是偶数

使用背景:数据库

第4章 磁盘分区

linux 启动过程

  1. 开机自检 bios
  2. mbr引导
  3. grub菜单
  4. 加载内核
  5. 运行init进程
  6. 读取运行级别 /etc/inittab
  7. 运行初始化脚本 /etc/rc.sysinit 设置主机名 和ip地址
  8. 根据运行级别启动 /etc/rc3.d 开机自启动服务
  9. /etc/rc.local
  10. 显示登录界面

4.1 mbr引导  主引导记录

磁盘的0磁头 0磁道1扇区前446字节 512字节的

446--MBR

64字节-分区表 划分为4个格子 16*4  每个格子里面存放的是分区的信息(主分区 扩展分区)

主分区 扩展分区 逻辑分区关系

mbr 主引导记录

[root@dzc ~]# dd if=/dev/sda of=/tmp/512.bin bs=512 count=1

[root@dzc ~]# od -xa /tmp/512.bin

查看二进制文件的内容 od -xa

主分区

最多有4个

4.1.1 系统中 磁盘分区的命名

/dev/

sas/sata/scsi-----sd^

第一块sas硬盘 sda

第二块sas硬盘 sdb

扩展分区

没有办法直接使用 存放数据

必须要在扩展分区下面划分逻辑分区才可以 使用。

逻辑分区

/sata/scsi/sas sda 5-15

4.1.2 分区的命名

主分区+扩展分区 1-4

逻辑分区 5

第一块硬盘的第一个主分区  :sda1

第一块硬盘的第一个逻辑分区:sda5

第二块硬盘的第二个逻辑分区:sdb6

4.1.3 ps aux   rss与vsz什么区别?

VSZ 进程所占用的虚拟内存的大小(物理内存+swap)
RSS 进程所占用的内存(物理内存)

[root@oldboyedu-40 ~]# ps aux

USER                PID        %CPU         %MEM          VSZ            RSS(KB)             COMMAND

运行这个进程用户    进程号     cpu使用率    内存使用率    虚拟内存大小   物理内存使用量  命令

4.2 磁盘与分区

 fdisk 主要给磁盘小于2TB(分区表是mbr)

 parted 主要是给磁盘大于2TB(分区表是gpt)

4.2.1 通过fdisk给磁盘进行分区

10M(主)

40M(逻辑)

[root@dzc ~]# fdisk -cu /dev/sdb

 

Command (m for help): m              

Command action

   d   delete a partition                 删除一个分区

   m   print this menu                             显示帮助菜单

   n   add a new partition                              创建一个分区

   p   print the partition table                       显示分区表

   q   quit without saving changes                不保存退出

   w   write table to disk and exit                 保存退出

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

e

Partition number (1-4): 2

First sector (22528-208895, default 22528):

Using default value 22528

Last sector, +sectors or +size{K,M,G} (22528-208895, default 208895):   

Using default value 208895

 

Command (m for help): p

 

Disk /dev/sdb: 106 MB, 106954752 bytes

64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x7f910191

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048       22527       10240   83  Linux

/dev/sdb2           22528      208895       93184    5  Extended

 

Command (m for help): n

Command action

   l   logical (5 or over)

   p   primary partition (1-4)

l

First sector (24576-208895, default 24576):

Using default value 24576

Last sector, +sectors or +size{K,M,G} (24576-208895, default 208895): +40M

 

Command (m for help): P

 

Disk /dev/sdb: 106 MB, 106954752 bytes

64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x7f910191

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048       22527       10240   83  Linux

/dev/sdb2           22528      208895       93184    5  Extended

/dev/sdb5           24576      106495       40960   83  Linux

 

Command (m for help): w    

4.2.2 添加一块硬盘sdb 100M 划分一个分区

#####第一个里程碑-分区

[root@oldboyedu-40 ~]# fdisk -cu  /dev/sdb

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First sector (2048-208895, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-208895, default 208895):

Using default value 208895

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

第二个里程碑-装修-格式化创建文件系统

#mkfs == make filesystem

[root@oldboyedu-40 ~]# mkfs.ext4 /dev/sdb1

mke2fs 1.41.12 (17-May-2010)

......

This filesystem will be automatically checked every 26 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.

#关闭分区的自我检查

[root@oldboyedu-40 ~]# tune2fs -c0 -i0 /dev/sdb1

tune2fs 1.41.12 (17-May-2010)

Setting maximal mount count to -1

Setting interval between checks to 0 seconds

 

#####第三个里程碑-挂载

#mount 谁         哪里

#mount 设备/分区  入口

[root@oldboyedu-40 ~]# mount /dev/sdb1 /mnt/

[root@oldboyedu-40 ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       8.8G  2.5G  6.0G  29% /

tmpfs           931M     0  931M   0% /dev/shm

/dev/sda1       190M   40M  141M  22% /boot

/dev/sdb1        94M  1.6M   88M   2% /mnt

第四个里程碑--让磁盘永久挂载 让磁盘在开机的时候自动挂载

#1) /etc/rc.local
/bin/mount /dev/sdb1 /mnt/
#2) /etc/fstab 
[root@oldboyedu-40 ~]# cat /etc/fstab 
UUID=aee0ea69-0959-4579-a3ff-f49a65c74220 /                       ext4    defaults        1 1
UUID=db3a1bcc-0362-416e-92b3-2c13a821fe08 /boot                   ext4    defaults        1 2
UUID=91248463-928e-4577-9c1b-d079263df919 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

第1列:磁盘分区   设备 
第2列:挂载在哪里 挂载点
第3列:文件系统的类型
第4列:挂载参数
第5列:是否进行dump备份
第6列:是否进程fsck 磁盘检查
tail -1 /etc/fstab 
#/dev/sdb1               /mnt                    ext4    defaults        0 0

原文地址:https://www.cnblogs.com/dzc-/p/7930044.html