文章目录
硬盘
SAS-SATA-SSD-SCSI-IDE
磁盘分区工具和挂载
- 两种分区类型
MBR分区
硬盘主引导记录MBR由4个部分组成
主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。
出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。
分区表(DPT,Disk Partition Table)含4个分区项,偏移地
址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4
结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA
GPT分区
GPT:GUID(Globals Unique Identifiers) partitiontable 支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block)
使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位
UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动
- fdisk
需求:(https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_039_fdisk_gdisk_parted.html)
使用fdisk工具给/dev/sdb(100G)分区满足下面几个要求
3个主分区一个扩展分区
/dev/sdb1分区类型为Linux LVM,大小为30G
/dev/sdb2分区类型为swap,大小为20G
/dev/sdb3分区类型为Linux, 大小为10G
/dev/sdb5分区类型为linux,大小为10G
保留40G留作后用
---------------------------------------------------------------------------------------
[root@centos7 mnt]$ 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 0x2fd8d812.
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):
First sector (2048-209715199, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199): +30G
Partition 1 of type Linux and of size 30 GiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2):
First sector (62916608-209715199, default 62916608):
Using default value 62916608
Last sector, +sectors or +size{K,M,G} (62916608-209715199, default 209715199): +20G
Partition 2 of type Linux and of size 20 GiB is set
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3):
First sector (104859648-209715199, default 104859648):
Using default value 104859648
Last sector, +sectors or +size{K,M,G} (104859648-209715199, default 209715199): +10G
Partition 3 of type Linux and of size 10 GiB is set
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): e
Selected partition 4
First sector (125831168-209715199, default 125831168):
Using default value 125831168
Last sector, +sectors or +size{K,M,G} (125831168-209715199, default 209715199):
Using default value 209715199
Partition 4 of type Extended and of size 40 GiB is set
Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (125833216-209715199, default 125833216):
Using default value 125833216
Last sector, +sectors or +size{K,M,G} (125833216-209715199, default 209715199): +10G
Partition 5 of type Linux and of size 10 GiB is set
Command (m for help): p
Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 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 label type: dos
Disk identifier: 0x2fd8d812
Device Boot Start End Blocks Id System
/dev/sdb1 2048 62916607 31457280 83 Linux
/dev/sdb2 62916608 104859647 20971520 83 Linux
/dev/sdb3 104859648 125831167 10485760 83 Linux
/dev/sdb4 125831168 209715199 41942016 5 Extended
/dev/sdb5 125833216 146804735 10485760 83 Linux
Command (m for help): t
Partition number (1-5, default 5): 1
Hex code (type L to list all codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): t
Partition number (1-5, default 5): 2
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): p
Disk /dev/sdb: 107.4 GB, 107374182400 bytes, 209715200 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 label type: dos
Disk identifier: 0x2fd8d812
Device Boot Start End Blocks Id System
/dev/sdb1 2048 62916607 31457280 8e Linux LVM
/dev/sdb2 62916608 104859647 20971520 82 Linux swap / Solaris
/dev/sdb3 104859648 125831167 10485760 83 Linux
/dev/sdb4 125831168 209715199 41942016 5 Extended
/dev/sdb5 125833216 146804735 10485760 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
- parted
parted每一步操作都是实时生效的,fdisk只有最后输入w保存后才生效。由于parted内建的mkfs还不够完善,所以完成以后我们可以使用quit命令退出parted并使用 系统的mkfs命令对分区进行格式化。使用fdisk -l命令打印分区表会出现警告信息,这是正常的。
使用parted分区的步骤
1. fdisk -l ##查看一下当前的存储设备,这里可以看到新加入的磁盘,比如/dev/sdb
2. parted /dev/sdb ## 进入分区命令行模式,可以随时用help来查看命令用法
3. mklabel gpt ##将MBR格式的磁盘格式化为GPT格式
4. mkpart primary 0 -1 ## 将整个磁盘化为一个分区,一般命名为/dev/sdb1
5. print ##打印分区结果
6. quit ## 退出分区命令行模式
7. mkfs.xfs /dev/sdb1 ##格式化分区为xfs文件系统格式(速度很快),也可以格式化为 mkfs.ext3
8. mount /dev/sdb1 /data ## 将格式化好的分区挂载在/data目录
9. df -Th /data ## 查看挂载情况
10.如果需要实现系统启动自挂载,则需要修改/etc/fstab文件
文件系统 挂载目录 文件系统格式 挂载时的可选参数 dump pass
/dev/sdb1 /data /xfs defualts 0 0
dump:表示该文件系统是否需要备份 1表示需要 0表示不需要
pass:表示文件系统检查的顺序 1最先检查 2 其次 0表示不需要检查
Redundant Arrays of Independent Disk
引言
独立磁盘构成的具有冗余能力的阵列;
磁盘阵列是由磁盘,以硬件(RAID卡)或软件(MDADM)形式组合成一个容量巨大的磁盘组,利用多个次磁盘组合在一起,提升真个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列还能利用同位检查(parity check)的观念,在数组中任意一个硬盘故障时,仍然读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
注:RAID可以预防数据丢失,但是它并不能保证你的数据不会丢失,所以大家使用RAID的同时还应该备份重要的数据
- RAID的创建有两种方式: 软RAID(通过操作系统软件来实现)和硬RAID(使用硬件阵列卡);软RAID在工作中用的比较少,但是可以帮助我们理清思路
- 企业中使用最多的是:1、5、10。不过随着云的高速发展,供应商一般可以把硬件问题解决掉。
- 基本思想L: 把好几块硬盘通过一定组合方式把它组合起来,成为一个新的磁盘阵列组,从而使它能够达到高性能磁盘的要求
三个关键技术:
1、镜像 - 提供了数据的安全性
2、chunk - 条带,块大小也可以说是条带的粒度,它的存在是为了提高I/O,提供了数据并发性
3、数据的校验:提供了数据的安全
RAID嵌套组合:
- 10就是将镜像和条带进行两级组合的RAID级别,第一级是RAID1镜像对
- RAID 0,1,5,10 的工作原理
- RAID 0,1,5,10 搭建、使用、删除及注意事项
热插拔:HotSwap
- 在不影响系统正常运转的情况下,用正常的物理硬盘替换RAID系统中失效硬盘
RAID0-6都是有的 只是被淘汰了
做硬件RAID,是在装系统前还是之后?
- 先做阵列才装系统,服务器启动时,有显示进入配置RAID的提示 有配置截面,硬RAID:需要有RAID卡,我们的磁盘是接在RAID卡的,由它统一管理和控制,数据也由它来进行分配和维护;它有自己的cpu 处理速度快
思想:用RAID卡来解耦CPU 专门的人干专门的事儿
软RAID:通过操作系统实现:
- Linux 内核中有一个md(multiple devices)模块在底层管理RAID设备,
- 工具mdadm,是linux下用于创建和管理软件RAID的命令
RAID5需要3块盘,那么使用4块盘,可以做raid5么?当然是可以的
奇偶校验信息的作用:异或运算
当一个磁盘数据发生损坏后,利用剩下的数据和相应的就校验信息去回复被损坏的数据
raid0 chunk卷
raid1 镜像卷
raid5 n-1/n 奇偶校验镜像卷
raid10 两级组合(镜像+条带)
RAID0
创建 mdadm -C -V /dev/md0 -l 0 -n 2 /dev/sda /dev/sdb
对创建的RAID0进行文件系统创建 - 格式化xfs mkfs.xfs /dev/md0
挂载 mkdir raid0 && mount /dev/md0 /raid0
看一下 df -Th /raid0
开机自动挂载 blkid /dev/md0
RAID1
创建 mdadm -C -V /dev/md1 -l 1 -n 2 -x 1 /dev/sd[a,b,c]
模拟故障盘 mdadm /dev/md1 -f /dev/sda
出现故障后更新配置 mdadm -Dsv > /etc/mdadm.conf
什么时候会用到raid1 镜像卷的特性??
重要数据 数据库 系统盘
移除损坏的设备:mdadm -r /dev/md1 /dev/sda
RAID5:
实验:
1、创建RAID5,添加1个热备盘,指定chunk大小为32K
-x 或 --spare-devicds= 指定阵列中备用盘的数量
-c 或 --chunk= 设定阵列的块 chunk 块大小,单位为 KB
2、停止阵列,重新激活阵列
3、使用热备盘,扩展阵列容量,从3个磁盘扩展到4个
4、硬盘损坏,修复添加
RAID5
创建 mdadm -C -V /dev/md5 -l 5 -n 3 -x 1 -c 32 /dev/sd{g,h,i,j}
查看 mdadm -D /dev/md5
停止 mdadm -Dsv > /etc/mdam.conf #停止前一定要先保存配置文件
mdadm -S /dev/md5 #停止前,请确认数据已经同步完
激活 mdadm -As
扩容 mdadm -G /dev/md5 -n 4 -c 32
-G 或 --grow 改变阵列大小或形态
mdadm -Dsv > /etc/mdadm.conf #保存配置文件
再次查看时发现磁盘没有变大,是因为一致性策略 数据同步完成 状态才会改变
注意: 阵列只有在正常状态下才能扩容,降级及重构时不允许扩容
RAID5只能增加不能减少
RAID1既能增加又能减少
RAID10
创建 mdadm -C -V /dev/md10 -l 10 -n 4 /dev/sdk[1-4]
查看 cat /proc/mdstat
RAID磁盘失效处理
删除RAID中的所有信息(拿RAID0举例子)
1、先卸载
2、mdadm -Ss
3、rm -rf /etc/mdadm.conf
4、mdadm --zero-superblock /dev/sdb
企业中硬RAID5的配置
1、为什么先把两块磁盘做RAID1,然后把后面的磁盘都做成RAID5
RAID1是镜像卷 安装系统用 一块坏了 不影响系统运行 RAID5保存数据
如果服务器主板不支持硬RAID,可以用RAID卡
LVM
创建 : pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
删除: pvremove /dev/sdb1 /dev/sdb2 /dev/sdb3
创建vg卷组,把/dev/sdb1、/dev/sdb2两个pv加入到vg中: vgcreate vg_data /dev/sdb1 /dev/sdb2
扩容vg,把新创建的pv(/dev/sdb3)添加到现有的vg_data卷组中:vgextend vg_data /dev/sdb3
减少vg,把物理卷/dev/sdb3从vg中删除:vgreduce vg_data /dev/sdb3
删除vg卷组:vgremove vg_data
创建逻辑卷:lvcreate -L 10G -n lv1 vg_data / lvcreate -l 100%free -n lv2 vg_data
格式化:mkfs.ext4 /dev/mapper/vg_data-lv1 (不同类型的有相应命令)
创建目录并挂载:mkdir /data && mount /dev/mapper/vg_data-lv1 /data/
删除逻辑卷:lvremove /dev/vg_data/lv2
扩容逻辑卷:lvextend -L +10G /dev/vg_data/lv1 / lvextend -l +100%free /dev/vg_data/lv1
调整逻辑卷大小,可增可减: lvresize -L 40G /dev/vg_data/lv1
(扩容/调整)刷新挂载点:resize2fs /dev/mapper/vg_data-lv1 / (centos7)xfs_growfs /dev/mapper/vg_data-lv1
- 场景一:parted 分区并加入lvm
[root@localhost ~]# parted /dev/xvdb
GNU Parted 3.1
使用 /dev/xvdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
错误: /dev/xvdb: unrecognised disk label
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvdb: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted) mklabel gpt
(parted) print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvdb: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
(parted) mkpart primary 0% 100%
(parted) print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvdb: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name 标志
1 1049kB 215GB 215GB primary
(parted) quit
[root@localhost ~]# pvcreate /dev/xvdb1
Physical volume "/dev/xvdb1" successfully created.
[root@localhost ~]# vgextend centos /dev/xvdb1
Volume group "centos" successfully extended
[root@localhost ~]# lvextend -l +100%FREE /dev/mapper/centos-home
Size of logical volume centos/home changed from 65.00 GiB (16640 extents) to <265.00 GiB (67839 extents).
Logical volume centos/home successfully resized.
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 7.3G 43G 15% /
devtmpfs 13G 0 13G 0% /dev
tmpfs 13G 0 13G 0% /dev/shm
tmpfs 13G 8.8M 13G 1% /run
tmpfs 13G 0 13G 0% /sys/fs/cgroup
/dev/xvda1 1014M 143M 872M 15% /boot
/dev/mapper/centos-home 65G 62G 3.9G 95% /var
tmpfs 2.6G 0 2.6G 0% /run/user/0
[root@localhost ~]# xfs_growfs /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=512 agcount=4, agsize=4259840 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=17039360, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=8320, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 17039360 to 69467136
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 7.3G 43G 15% /
devtmpfs 13G 0 13G 0% /dev
tmpfs 13G 0 13G 0% /dev/shm
tmpfs 13G 8.8M 13G 1% /run
tmpfs 13G 0 13G 0% /sys/fs/cgroup
/dev/xvda1 1014M 143M 872M 15% /boot
/dev/mapper/centos-home 265G 62G 204G 24% /var
tmpfs 2.6G 0 2.6G 0% /run/user/0
容器的overlay文件系统
对象存储
在存储领域内,主要包括三大存储方式,分别为文件系统、块存储与对象存储。
其中对象存储(Object-based Storage)是一种新的网络存储架构,同时兼具块存储高速直接访问磁盘特点及文件系统的分布式共享特点,提供了高可靠性、跨平台性以及安全的数据共享的存储体系结构,集中了块存储的高速与文件存储利于共享的特点。
目前应用最为广泛的两大对象存储为S3与Swift。其中,S3即Simple Storage Service简单存储服务;
Swift是openstack开源云计算项目的子项目之一,也是一种对象存储
对象存储是一种将数据作为对象进行管理的计算机数据存储体系结构,与其他存储体系结构(例如将数据作为文件层级管理的文件系统)以及将数据作为块和扇区内的块进行管理的块存储相对。每个对象通常包括数据本身,可变数量的元数据和全局唯一标识符。
分布式存储
分布式存储的原理,安装以及应用。分布式存储Ceph的特点,Ceph的核心组件,Ceph存储的原理和企业级应用项目。
粗略性能
- Portable Operating System Interface,缩写为POSIX
- NVMe的全称是Non-Volatile Memory Express
1、机械硬盘读bai写速度平均60--du-80M每秒。
2、固态硬盘不同品牌型号之zhi间,平均大约在150---300M每秒。
3、5400转的笔记本硬盘:50-90MB每秒。
4、7200转的台式机硬盘:90-190MB每秒。
5、固态硬盘的读写速度可以达到500MB/s。
因为NVMe的出现,读带宽从500MB/s提高到了3200MB/s,写带宽从400MB/s提高到了1200MB/s左右