Linux运维学习之路(9)存储管理

来源:互联网 发布:澳大利亚买车软件 编辑:程序博客网 时间:2024/05/16 10:39

一、存储基本知识
1.从工作原理区分
硬盘有两种类型,一种是机械硬盘叫HDD,另一种是固态硬盘叫SSD。首先介绍一下机械硬盘。就硬盘的物理组件来说,硬盘其实是由许许多多的圆形硬盘盘所组成的, 依据硬盘盘能够容纳的数据量,而有所谓的单盘 (一块硬盘里面只有一个硬盘盘) 或者是多盘(一块硬盘里面含有多个硬盘盘)的硬盘。在这里我们以单一个硬盘盘来说明,硬盘盘可由底下的图形来示意:
这里写图片描述
这里写图片描述
这里写图片描述
首先,硬盘里面一定会有所谓的磁头 ( Head ) 在进行该硬盘盘上面的读写操作,而磁头是固定在机械手臂上面的,机械手臂上有多个磁头可以进行读取的操作。 而当磁头固定不动 (假设机械手臂不动) ,硬盘盘转一圈所画出来的圆就是所谓的柱面( Track );由圆心向外划直线,则可将柱面再细分为一个一个的扇区( Sector ),这个扇区就是硬盘盘上面的最小储存物理量了! 通常一个 sector 的大小约为 512 Bytes 。

SSD固态硬盘
SSD是摒弃传统磁介质,采用电子存储介质进行数据存储和读取的一种技术,突破了传统机械硬盘的性能瓶颈,拥有极高的存储性能,被认为是存储技术发展的未来新星。  
固态硬盘的全集成电路化、无任何机械运动部件的革命性设计,从根本上解决了在移动办公环境下,对于数据读写稳定性的需求。全集成电路化设计可以让固态硬盘做成任何形状。与传统硬盘相比,SSD固态电子盘具有以下优点:  
第一,SSD不需要机械结构,完全的半导体化,不存在数据查找时间、延迟时间和磁盘寻道时间,数据存取速度快。
第二,SSD全部采用闪存芯片,经久耐用,防震抗摔,即使发生与硬物碰撞,数据丢失的可能性也能够降到最小。  
第三,得益于无机械部件及FLASH闪存芯片,SSD没有任何噪音,功耗低。  
第四,质量轻,比常规1.8英寸硬盘重量轻20-30克,使得便携设备搭载多块SSD成为可能。同时因其完全半导体化,无结构限制,可根据实际情况设计成各种不同接口、形状的特殊电子硬盘。

2.从硬盘的尺寸区分
硬盘大小一般有3.5英寸、2.5英寸、1.8英寸
这里写图片描述

这里写图片描述

3.从插拔方式区分
插拔方式有热插拔和非热插拔两种,热插拔方式的硬盘可以在做完RAID之后,随时更换坏掉的硬盘,而不必关掉服务器,而非热插拔方式,就没有这种优势,硬盘坏掉,系统也可能坏掉。

4.从硬盘接口区分
IDE —— SATA (Serial ATA)
SCSI —— SAS (Serial Attached SCSI)即串行连接SCSI
other —— PCIE FC
这里写图片描述

SAS(Serial Attached SCSI)即串行连接SCSI,是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。

5.从硬盘设备命令区分
物理硬盘: /dev/sd[a-z]

KVM虚拟化: /dev/vd[a-z](半虚拟化驱动)
    /dev/sd[a-z](全虚拟化驱动)

KVM增加硬盘
半虚拟化驱动磁盘:可以在线添加(online)
全虚拟化驱动磁盘:不能在线添加(offline)

HP服务器硬盘
/dev/cciss/c0d0
/dev/cciss/c0d0p1 //c0第一个控制器, d0第一块磁盘, p1分区1
/dev/cciss/c0d0p2 //c0第一个控制器, d0第一块磁盘, p2分区2

6.从存储连接方式区分
本地存储 例如DellR730本地磁盘
外部存储 scsi线 sata线 sas线 FC线
网络存储 以太网络(iscsi, glusterFS,ceph) FC网络

7.从分区方式区分
MBR <2TB fdisk 14个分区(4个主分区,扩展分区,逻辑分区) 例如: 3主 + 1扩展(n逻辑)
GPT >2TB gdisk(parted) 128个主分区
注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!


二、磁盘阵列RAID
RAID:廉价磁盘冗余阵列(Redundant Array of Independent Disks)
作 用:容错、提升读写速率

RAID 类型 个数 利用率 优缺点
–———————————————————————————————-
RAID0 条带集 2+ 100% 读写速率最快,不容错
RAID1 镜像集 2 50% 读写速率一般,容错
RAID5 带奇偶校验条带集 3+ (n-1)/n 读写速率快,容错,允许坏一块
RAID6 带奇偶校验条带集双校验dp 4+ (n-2)/n 读写快,容错,允许坏两块
RAID01
RAID10 RAID1的安全+RAID0的高速 4 50% 读写速率快,容错
RAID50 RAID5的安全+RAID0的高速 6 (n-2)/n 读写速率快,容错
RAID60 RAID6的安全+RAID0的高速 8 (n-4)/n 读写速率快,容错
–———————————————————————————————-
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

RAID 实现方式
硬RAID: 需要RAID卡,有自己的CPU,处理速度快,有有电池和无电池两种类型
软RAID: 通过操作系统实现,比如Windows、Linux


三、基本分区管理
分区三部曲:
1.基本分区(fdisk gdisk)
2.创建文件系统(mkfs)
3.挂载(mount)

为了方便演示,这里我采用kvm虚拟机添加半虚拟化磁盘(可以在线添加),添加方式如下:
这里写图片描述

这里写图片描述

添加完成之后,用lsblk命令查看一下,可以看到多了一块vdb名称的虚拟磁盘
这里写图片描述

首先

# partprobe /dev/vdb

磁盘分区
1)fdisk

 # fdisk /dev/vdb

这里写图片描述

(1)创建主分区
这里写图片描述

这里写图片描述
创建完成之后,输入w保存分区表

(2)创建文件系统(格式化)

# mkfs.xfs /dev/vdb1                       //xfs文件系统# mkfs.ext4 /dev/vdb2                     //ext4文件系统

这里写图片描述

这里写图片描述

查看格式化的磁盘的UUID标识
这里写图片描述

(3)挂载
创建挂载点

# mkdir /mnt/disk{1,2}# mount -t xfs /dev/vdb1 /mnt/disk1    //-t指定文件系统类型为xfs# mount -t ext4 /dev/vdb2 /mnt/disk2   //-t指定文件系统类型为ext4# df -Th       //查看磁盘挂载信息

这里写图片描述
这种方式只是临时挂载,重新开机就没有了。

取消挂载

# umount /dev/vdb{1,2}# df -Th

这里写图片描述

永久挂载

# blkid /dev/vdb{1,2} |awk '{print $2}' |tee -a /etc/fstab# vim /etc/fstab

这里写图片描述

# mount -a# df -Th

这里写图片描述

2)gpt分区方式与fdisk类似,此处不做详细阐述


四、逻辑卷LVM
许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要。
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。RHEL5默认安装的分区格式就是LVM逻辑卷的格式,需要注意的是/boot分区不能基于LVM创建,必须独立出来。
这里写图片描述

这里写图片描述

PE: Physical extent 物理扩展 4M 8M 16M 32M 64M 创建VG时指定 -s 8M
LE: Logical extent 逻辑扩展

1.创建LVM
添加两块虚拟磁盘/dev/vdc、/dev/vdd
这里写图片描述

创建物理卷PV

# pvcreate /dev/vd{c,d}

这里写图片描述

查看pv

# pvs

这里写图片描述

创建卷组VG

# vgcreate vg1 /dev/vdc          //创建卷组名为vg1的卷组# vgcreate -s 8M vg2 /dev/vdd    //指定PE大小为8M# vgs

这里写图片描述

# vgdisplay

这里写图片描述

创建逻辑卷LV

# lvcreate -L 200M -n lv1 vg1# lvcreate -l 100 -n lv2 vg2        //PE=8M,100*8=800M,lv2大小800M# lvscan

这里写图片描述

创建文件系统并挂载

# mkdir /mnt/lv{1,2}# mkfs.xfs /dev/vg1/lv1# mkfs.xfs /dev/vg2/lv2# vim /etc/fstab/dev/vg1/lv1 /mnt/lv1 auto defaults 0 0/dev/vg12/lv2 /mnt/lv2 auto defaults 0 0# mount -a# df -Th

扩大VG的方法
1.vgextend

# pvcreate /dev/vde# vgextend vg1 /dev/vge# vgscan

三、LV扩容
1. lv扩容

# vgs# lvextend -L 800M /dev/vg1/lv1        //总共800M # lvextend -L +800M /dev/vg1/lv1       //在原来的基础上加800M空间# lvextend -l 15 /dev/vg1/lv1# lvextend -l +15 /dev/vg1/lv1# lvscan

2 FS扩容

# df -Th /dev/mapper/vg1-lv1 xfs 637M 67M 570M 11% /mnt/lv1/dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2a. xfs# xfs_growfs /dev/vg1/lv1b. ext2/3/4# resize2fs /dev/vg1/lv2# df -Th

未完待续…