1.逻辑卷LVM--(Logical Volume Manager(逻辑卷管理)的简写)
1.1.LVM管理
lvm概念:LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。
lvm的特点
#传统分区的缺点:
传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变。当一个分区空间已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中。
#当采用LVM时:
1.将硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
2.文件系统建立在LVM上,可以跨分区,方便使用;
3.当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。
#使用LVM主要是方便管理、增加了系统的扩展性。可以跨分区,多个硬盘组合。
lvm
1.lvm的制作
2.lvm的使用
3.lvm扩容-------在线扩容。可以在有数据的情况下去扩容。
基本分区(MBR|GPT) ----> Filesystem(制作文件系统类型) ----> mount(挂载)
逻辑卷LVM ----> Filesystem(制作文件系统类型) ----> mount(挂载)
1.2.lvm的制作
第一步,拥有基本分区
做成物理卷: pv ------- sdb1、sdb2 打pv的标记。
加入卷组: vg-------- 卷组里面包含:sdb1 sdb2,建立在PV之上。
逻辑卷 lv ------- 逻辑卷是从卷组里面拿空间出来做成的逻辑卷,在起个名,建立在VG之上
制作文件系统------mkfs.xfs lvm路径
挂载 ------mount 使用lvm
#制作lvm的时候可以是一整块硬盘也可以是硬盘分好的区并且是还没有用的。必须是没有做文件系统的
2.实战
2.1.创建LVM
首先准备添加3块磁盘:可以是/dev/sdb这种没有分区的也可以是/dev/sdb1这种已经分区了的
注意:如果没有pv命令安装 #yum install -y lvm2
2.2.创建pv
[root@linux-server ~]# pvcreate /dev/sdb #创建pv
[root@linux-server ~]# pvs #查看pv
[root@linux-server ~]# pvscan #查看pv
2.3.创建vg
[root@linux-server ~]# vgcreate vg1 /dev/sdb #创建vg
[root@linux-server ~]# vgs #查看vg
[root@linux-server ~]# vgscan #查看vg
[root@linux-server ~]# vgdisplay #查看vg具体查看pe数值
2.4.创建lv
[root@linux-server ~]# lvcreate -L 150M -n lv1 vg1 #创建lv
[root@linux-server ~]# lvcreate -l 20 -n lv2 vg1 #采用PE方式在创建一个lv
参数解释:
-L 指定lv的大小
-n 给创建的lv起一个名字
-l 20 指定PE
[root@linux-server ~]# lvs #查看lv
2.5.制作文件系统并挂载
[root@linux-server ~]# mkfs.xfs /dev/vg1/lv1
[root@linux-server ~]# mkfs.ext4 /dev/vg1/lv2
[root@linux-server ~]# mkdir /mnt/lv{1..2}
[root@linux-server ~]# mount /dev/vg1/lv1 /mnt/lv1
[root@linux-server ~]# mount /dev/vg1/lv2 /mnt/lv2
[root@linux-server ~]# df -Th
LVM逻辑卷扩容
1.VG管理
#注意:如果lv所在的vg有空间直接扩容就ok了!
1.1.扩大VG vgextend
1.创建pv
[root@linux-server ~]# pvcreate /dev/sdc
2.直接vgextend扩容
[root@linux-server ~]# vgextend vg1 /dev/sdc #vg1卷组名字,将/dev/sdc扩展到vg1中
1.2.实战lv扩容
[root@linux-server ~]# vgs #查看vg
[root@linux-server ~]# lvextend -L 850M /dev/vg1/lv1 #扩展到850M
[root@linux-server ~]# lvextend -L +850M /dev/vg1/lv1 #在原有基础上加850M
[root@linux-server ~]# lvs 查看lv
[root@linux-server ~]# lvextend -l +15 /dev/vg1/lv1 #在原有基础上加15个PE
[root@linux-server ~]# lvs 查看lv
1.3.FS(file system)文件系统扩容
[root@linux-server ~]# xfs_growfs /dev/vg1/lv1 #xfs扩容 做格式化
[root@linux-server ~]# resize2fs /dev/vg1/lv2 #ext4扩容 做格式化
[root@linux-server ~]# df -Th
二.交换分区
交换分区管理 Swap---也叫虚拟内存
作用: ‘提升‘ 内存的容量,防止OOM(Out Of Memory)
现象是当内存不够的时候内核会随机杀死进程,它认为占用内存多的进程。(内核会先删除占用内存多的进程).
如何制作交换分区?
#我们可以将硬盘空间拿来当作内存来用
什么时候用到交换分区?
#当物理内存不够用的时候使用swap分区,防止物理内存耗尽
扩展知识 (具体以实际为准一下仅供参考)
swap分区大小设置规则
在Linux系统,我们可以参照Redhat公司为RHEL5、RHEL6推荐的SWAP空间的大小划分原则,在你没有其他特别需求时,可以作为很好的参考依据。
内存小于4GB时,推荐不少于2GB的swap空间;
内存4GB~16GB,推荐不少于4GB的swap空间;
内存16GB~64GB,推荐不少于8GB的swap空间;
内存64GB~256GB,推荐不少于16GB的swap空间
一、查看当前的交换分区
[root@linux-server ~]# free -m
[root@linux-server ~]# swapon -s #查看交换分区信息
二、增加交换分区 可以是基本分区,LVM,File
[root@linux-server ~]# fdisk /dev/sdd #分一个主分区出来
[root@linux-server ~]# partprobe /dev/sdd #刷新分区表
[root@linux-server ~]# ll /dev/sdd*
初始化
[root@linux-server ~]# mkswap /dev/sdd1 #初始化
挂载
[root@linux-server ~]# blkid /dev/sdd1 #查看UUID(uuid指挂载设备id )
/dev/sdd1: UUID="d2fd3bc0-10c0-4aeb-98ea-6b640d29b783" TYPE="swap"
[root@linux-server ~]# vim /etc/fstab #制作开机挂载
[root@linux-server ~]# swapon -a #激活swap分区(读取/etc/fstab)
[root@linux-server ~]# swapon -s
#swapoff /dev/sdd1 #关闭swap分区
file制作
[root@linux-server ~]# dd if=/dev/zero of=/swap2.img bs=1M count=512
[root@linux-server ~]# mkswap /swap2.img #初始化
[root@linux-server ~]# vim /etc/fstab
[root@linux-server ~]# chmod 600 /swap2.img #交换分区权限需要设置为600,默认644权限不安全。
[root@linux-server ~]# swapon -a
[root@linux-server ~]# swapon -s
swap扩展(lvm扩展方式)
pvcreate /dev/sdd
vgextend /dev/centos /dev/sdd
vgdisplay /dev/sdd
lvextend -l +511 /dev/centos/swap
swapoff -a
mkswap /dev/centos/swap
swapon -a
free -m
三.mount详解
常用挂载选项详解 (挂载设备文件名、UUID)
常见的挂载选项
-o 指定文件系统属性
rw 读写
ro 只读
noexec 不允许执行二进制文件
exec 允许执行二进制文件
auto mount -a 开机自动挂载
remount 在线重新挂载
[root@linux-server ~]# mount #查看已经挂载上的系统的属性
案例1:exec/noexec
[root@linux-server ~]# mount /dev/vg1/lv1 /mnt/lv1/ #挂载默认是有执行权限的
[root@linux-server ~]# mount -o noexec /dev/vg1/lv2 /mnt/lv2 #不允许执行二进制文件
[root@linux-server ~]# cat /mnt/lv1/hello.sh
#!/bin/bash
echo "hello"
[root@linux-server ~]# cat /mnt/lv2/hello2.sh
#!/bin/bash
echo "hello"
[root@linux-server ~]# chmod +x /mnt/lv1/hello.sh
[root@linux-server ~]# chmod +x /mnt/lv2/hello2.sh
[root@linux-server ~]# /mnt/lv1/hello.sh
hello
[root@linux-server ~]# /mnt/lv2/hello2.sh
-bash: /mnt/lv2/hello2.sh: Permission denied
取消挂载
[root@linux-server ~]# umount /mnt/lv2/
四raid--磁盘阵列
1、RAID介绍
RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。
#注意
所有服务器在安装操作系统之前必须先做raid【常识】
作用
为什么要做raid? #为了保证数据完整性,防止数据丢失
最常用的raid级别:0、1、5、6、10:是 1和0 的组合
raid0 ---数据条带卷
最少需要两块磁盘,分别往每一块磁盘上写一部分数据
优点:
1.读写速度快,
2.磁盘利用率:100%
缺点:不提供数据冗余,无数据检验,不能保证数据的正确性,存在单点故障。
应用场景:
1)对数据完整性要求不高的场景,如:日志存储,个人娱乐
2)要求读写效率高,安全性能要求不高,如图像工作站
raid1 又叫镜像raid,通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。
一般需要两块磁盘,每块磁盘上都会存储一份完整数据。其数据安全性就会较高,但是磁盘空间利用率是比较低的。
优点:提供数据冗余,数据双倍存储安全性高支持容错。读速度快
缺点:写速度慢,无数据校验。磁盘利用率不高
磁盘利用率:50%
应用场景:
存放重要数据,如数据存储领域
===========================================================
raid5:RAID5应该是目前最常见的 RAID 等级,它的校验数据分布在阵列中的所有磁盘上。RAID5的磁盘上同时存储数据和校验数据。当一个数据盘损坏时,系统可以根据其他数据块和对应的校验数据来重建损坏的数据。
raid5最少需要3块磁盘。
优点:
1.可以找回丢失的数据---数据可以通过校验计算得出,
2.冗余磁盘-->(需要4快磁盘将其中一块做热备)当某一块磁盘坏掉后,冗余磁盘会自动替换上去
3.有校验机制
4.读写速度高
5.磁盘利用率高
缺点:
1.磁盘越多安全性能越差
应用场景:安全性高,如金融、数据库、存储等。
==================================================
raid6:RAID6 等级是在 RAID5 的基础上为了进一步增强数据保护而设计的一种 RAID 方式。
最少需要四块磁盘,两块存校验位。RAID6引入双重校验的概念,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。
优点:
1.容错:允许两块磁盘同时坏掉。读写快。
2.良好的随机读性能
3.有校验机制
缺点:
1.写入速度差
2.成本高
应用场景:对数据安全级别要求比较高的企业
===============================================
RAID10:先做镜像再作条带--也叫混合raid
优点:
1.较高的IO性能
2.有数据冗余
3.无单点故障
4.安全性能高
缺点:成本稍高
应用场景:
特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。
=======================================================
购买磁盘后需要操作
# 1.有磁盘,2.制作read5,3.开始分区,4.刷新分区表,5,制作文件系统,6.挂载。