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
未完待续…
- Linux运维学习之路(9)存储管理
- Linux运维学习之路(4)Linux文件管理
- Linux运维学习之路(5)Linux用户管理
- Linux运维学习之路(7)进程管理
- 学习LINUX高级程序设计之进程存储管理
- Linux系统之存储管理
- Linux运维学习笔记之八:用户管理
- linux内核之存储管理二
- linux下的存储管理之二
- linux下存储管理之三
- linux系统之存储设备的管理
- linux初学之存储设备的管理
- Linux运维学习笔记之九:网络管理和磁盘管理
- linux 学习之权限管理
- Linux学习之软件管理
- Linux学习之用户管理
- Linux学习之进程管理
- Linux学习之启动管理
- CSV类库:OpenCSV
- Python高级编程Linux-pdb调试
- 数据结构-链表总结
- 寻找丑数
- 关于@override报错的问题
- Linux运维学习之路(9)存储管理
- HashMap的实现原理
- java并发编程-java线程池
- NOIP实用技巧,让你的程序超乎寻常的快
- 转——老师教我做好的presentation
- TSOI2 锻炼计划 模拟
- 并行程序模拟,紫书P139UVa210
- eclipse连接github
- 补充:需要掌握的算法