linux 系统管理之磁盘阵列RAID和压缩命令

什么是RAID

RAID:Redundant Arrays of Inexpensive Disks

即:廉价磁盘冗余阵列

Redundant Arrays of Independent Disks

独立磁盘冗余阵列

1988年由加利福尼亚大学伯克利分校(University of California-Berkeley)提出的“A Case for Redundant Arrays of Inexpensive Disks”。

旨在将多个相对廉价的IDE接口的磁盘合成一个“阵列”来提供更好的IO性能、实现磁盘冗余,或者两者都提供。

RAID

提高IO能力:

磁盘并行读写

提高耐用性;

磁盘冗余来实现

级别:多块磁盘组织在一起的工作方式有所不同

RAID实现的方式:

外接式磁盘阵列:通过扩展卡提供适配能力

内接式RAID:主板集成RAID控制器

安装OS前在BIOS里配置

Software RAID:

RAID级别

RAID-0:条带卷,strip

RAID-1: 镜像卷,mirror

RAID-2

..

RAID-5

RAID-6

RAID-10

RAID-01

RAID-0:

读、写性能提升;

可用空间:N*min(S1,S2,...)

无容错能力

最少磁盘数:2, 2

RAID-1:

读性能提升、写性能略有下降;

可用空间:1*min(S1,S2)

有冗余能力

最少磁盘数:2, 2+

RAID-4:

多块数据盘异或运算值,存于专用校验盘

坏了一块硬盘仍然可以继续工作的模式称为降级模式

校验盘压力最大,很容易形成性能瓶颈;

RAID-5:

读、写性能提升

可用空间:(N-1)*min(S1,S2,...)

有容错能力:允许最多1块磁盘损坏

最少磁盘数:3, 3+

RAID-6:

读、写性能提升

可用空间:(N-2)*min(S1,S2,...)

有容错能力:允许最多2块磁盘损坏

最少磁盘数:4, 4+

RAID混合类型级别

RAID-10:

读、写性能提升

可用空间:N*min(S1,S2,...)/2

有容错能力:每组镜像最多只能坏一块

最少磁盘数:4, 4+

RAID-01、RAID-50

RAID7:可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式

JBOD:Just a Bunch Of Disks

功能:将多块磁盘的空间合并一个大的连续空间使用

可用空间:sum(S1,S2,...)

常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

实现方式:

硬件实现方式

软件实现方式

CentOS 6上的软件RAID的实现:

结合内核中的md(multi devices)模块实现;

mdadm:模式化工具

命令的语法格式:

mdadm [mode] <raiddevice> [options] <component-devices>

支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10,...

模式:

创建模式:-C

装配模式:-A

监控模式:-F

管理模式:-f, -r, -a

<raiddevice>:/dev/md#

<component-devices>:任意块设备,注意如果是分区的话,其分区类型要改为fd

-C:创建模式

-n #:使用#个块设备来创建此RAID

-l #:指明要创建的RAID的级别

-a {yes|no}:自动创建目标RAID设备的设备文件

-c CHUNK_SIZE:指明块大小, 默认值为512K

-x #:指明空闲盘的个数

例如:创建一个10GB可用空间的RAID5

混杂模式

显示RAID的详细信息

-D

mdadm -D /dev/md#

停止md设备:

mdadm -S /dev/md0

管理模式:

-f:为指定的磁盘或分区添加损坏标记

-a:添加磁盘或分区到md设备中

-r:从md设备中移除磁盘或分区

装配模式:Assemble

-A

用于将停止的RAID设备重新装配使之能够正常工作。

在装配RAID设备的时候,需要依赖/etc/mdadm.conf文件进行

mdadm -D --scan >> /etc/mdadm.conf

mdadm -S /dev/md2

mdadm -S /dev/md0

mdadm -C -n 2 -l 0 /dev/sdc /dev/sdf

mdadm -A /dev/md2

mdadm /dev/md2 -a /dev/md0

观察md的状态:

cat /proc/mkstat

watch命令:

-n #:刷新时间间隔,单位为秒,默认为1秒;

watch -n # ‘COMMAND‘

LVM2

Logical Volume Manager,逻辑卷管理器,Version 2

IBM

使用纯软件的方式组织一个或多个底层的块设备,将它们重新定义为一个逻辑块设备的解决方案;

利用内核中的dm模块实现;

dm:device mapper,设备映射表

dm模块可以将一个或多个底层块设备组织成一个逻辑块设备;

用户空间中的相应命令来向dm模块发出系统调用,就可以完成后逻辑块设备的管理;

逻辑块设备统一存放在/dev/dm-#

使用DM机制实现LVM管理的步骤:

1.创建并表示物理卷,PV

注意:如果用来创建物理卷的设备是普通分区,一定要将分区的ID修改为8e;

2.基于PV创建卷组,逻辑块设备,创建的卷组的同时指定PE的大小;

注意:一旦PE大小被指定,就不允许更改;

3.在已经创建的卷组中创建逻辑卷

4.在逻辑卷中创建文件系统(高级格式化)

5.挂载

物理卷的管理操作:

pvcreate:创建物理卷

pvdisplay:显示物理卷的详细信息

pvs:显示物理卷的简单信息

pvremove:删除物理卷

pvmove:将某个物理卷中的所有的PE移动到其他物理卷中;

卷组的管理操作:

vgcreate:创建卷组

-s #{kKmMgG}:指定PE的大小,如果省略该选项,默认的PE为4M;

vgremove:删除卷组

vgextend:扩展卷组容量,将新的pv添加到卷组中

vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

vgreduce:缩减卷组容量,将pv从卷组中移除;在做此操作之前,应该先使用pvmove,保证被移除的pv上没有被占用的PE;

vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

vgdisplay:显示卷组的详细信息

vgs:显示卷组的简短信息

逻辑卷的管理操作:

lvcreate:创建逻辑卷

-L LV_SIZE(#{kK|mM|gG}):指定逻辑卷的大小,不能超过卷组的容量;

-l #%{FREE|VG|ORIGIN|PVS}:指定逻辑卷占用对应存储单元的百分比;

-n LV_NAME:指定逻辑卷的名称

-i #:在创建逻辑卷的时候,以条带的方式创建,并指明这个逻辑卷上有#个条带

-I #:在创建逻辑卷的时候,以条带的方式创建,并指明CHUNK的大小;

lvremove:移除逻辑卷

lvdisplay:显示逻辑卷的详细信息

lvs:显示逻辑卷的简短信息

lvchange:修改LV的状态

-ay:激活逻辑卷

-an:停用逻辑卷

lvextend:扩展逻辑卷的空间,

注意:一定要先扩展逻辑卷的物理边界,再扩展逻辑卷的逻辑边界;

使用ext系列文件系统的时候,resize2fs命令扩展逻辑边界;

扩大逻辑卷的物理边界:

lvextend -L [+]SIZE /PATH/TO/LVM

如果SIZE有+:表示在原有逻辑卷容量的基础上,增加SIZE空间

如果SIZE无+:表示将逻辑卷的容量扩大到SIZE空间

扩大逻辑卷的逻辑边界:

e2fsck /PATH/TO/LVM

resize2fs [-f] /PATH/TO/LVM

lvreduce:缩减逻辑卷的空间

注意:先缩减逻辑卷的逻辑边界,再缩减逻辑卷的物理边界;

使用ext系列文件系统的时候,resize2fs命令缩减逻辑边界

lvreduce -L [-]SIZE /PATH/TO/LVM

如果SIZE有-:表示在原有逻辑卷容量的基础上,削减SIZE空间

如果SIZE无-:表示将逻辑卷的容量直接削减至SIZE空间

umount /PATH/TO/LVM

e2fsck /PATH/TO/LVM            //强制校验数据一致性

resize2fs -f /PATH/TO/LVM LV_SiZE //修改逻辑卷的逻辑边界,LV_SIZE为调整后的逻辑卷大小

lvchange -an /PATH/TO/LVM      //关闭逻辑卷

lvreduce -L [+]SIZE /PATH/TO/LVM  //修改逻辑卷的物理边界,大小要和逻辑边界保持一致

lvchange -ay /PATH/TO/LVM      //重新激活逻辑卷

mount /PATH/TO/LVM /PATH/TO/LVM_MOUNT_POINT

为了更方便的使用逻辑卷,为/dev/dm-#设备创建了两个符号链接文件:

/dev/mapper/VG_NAME-LV_NAME --> ../dm-#

/dev/VG_NAME/LV_NAME --> ../dm-#

逻辑卷的快照:

快照,本身也是一种逻辑卷;目标逻辑卷的另外一个访问路径;

快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝

对于需要备份或者复制的现有数据集临时拷贝以及其它操作来说,快照是最合适的选择。

快照只有在它们和原来的逻辑卷不同时才会消耗空间。

在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间

当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。

快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据

也可以使用lvextend扩展快照卷。

快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享。

由于快照区与原本的LV共用很多PE的区块,因此快照去与被快照的LV必须要要在同一个VG上!系统恢复的时候的文件数量不能高于快照区的实际容量。

快照逻辑卷

lvcreate -L SNAPSHOT_SIZE -s -p r -n SNAPSHOT_NAME /PATH/TO/ORIGIN_LVM

-L SIZE:指定快照逻辑卷的大小

-s:创建一个快照逻辑卷

-p r:创建处理的逻辑卷是只读权限

-n SNAPSHOT_NAME:指定快照逻辑卷的名称

压缩:

Linux系统中常有的压缩和解压缩工具:

压缩:以时间换空间的一种操作;

压缩的原理:标记和替换

压缩比:压缩之前与压缩之后的文件的大小的比值;

纯文本文件压缩比较大

视频、图像等文件压缩比小

能够实现压缩功能的工具:

compress/uncompress:.Z扩展名

gzip/gunzip:.gz扩展名

bzip2/bunzip2:.bz2扩展名

xz/unxz:.xz扩展名,目前压缩比最高的工具

zip/unzip:.zip扩展名

gzip:

gzip, gunzip, zcat - compress or expand files

-d:解压缩

-#:以指定的压缩比进行压缩,1-9,9为最高级;默认6

-c:将压缩结果输出到标准输出,不会对原文件进行压缩;

gzip -c /PATH/TO/FILE > /PATH/TO/COMPRESS_FILE.gz

bzip2:

bzip2, bunzip2 - a block-sorting file compressor, v1.0.4

bzcat - decompresses files to stdout

-d:解压缩

-#:指定压缩比进行压缩,1-9,默认为6

-k:保留原文件不删除,创建新的压缩文件;

xz:

xz, unxz, xzcat - Compress or decompress .xz files

-d:解压缩

-#:指定压缩比进行压缩,1-9,默认为6

-k:保留原文件不删除,创建新的压缩文件;

tar:归档程序

tar——tape archive:磁带档案

tar [OPTION...] [FILE]...

主选项:

-c:创建档案文件

-x:释放档案文件的内容

-t:查看档案文件中包含的文件

-u/-r:向档案文件中添加新的文件

辅助选项:

-f:指定档案的文件的路径

-C:在释放档案文件中的内容时,指定释放的路径;

-z:在创建档案文件时,调用gzip进行压缩

-j:在创建档案文件时,调用bzip2进行压缩

-J:在创建档案文件时,调用xz进行压缩(可能不支持)

--exclude:在释放档案文件时,排除某个文件;

-k:在释放档案文件时,不会覆盖同名文件;

cpio

写一个脚本:给脚本传递几个文件,选择压缩方式进行压缩;

#!/bin/bash

#

read -p "Please input some files:" file

select I in gzip bzip2 xz ; do

case $I in

gzip)

gzip file

;;

bzip2)

bzip2 file

;;

xz)

xz file

;;

*)

echo "Input again some files:"

;;

esac

done

#!/bin/bash

#

filedest=/usr/bin/file

read -p "Please input some files:" file1 file2 file3 file4

select I in gzip bzip2 xz ; do

case $I in

gzip)

tar -czf ${filedest}.tar.gz file1 file2 file3 file4

;;

bzip2)

tar -cjf ${filedest}.tar.bz2 file1 file2 file3 file4

;;

xz)

tar -cJf ${filedest}.tar.xz file1 file2 file3 file4

;;

*)

echo "Input again some files:"

;;

esac

done

时间: 2024-10-07 20:04:33

linux 系统管理之磁盘阵列RAID和压缩命令的相关文章

Linux系统管理08——服务器RAID及配置实战

一.磁盘阵列介绍 1.RAID简介 RAID(Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列.RAID 的基本想法是把多个便 宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大.价格昂贵的磁盘. 目前 RAID 技术大致分为两种:基于硬件的 RAID 技术和基于软件的 RAID 技术.其中在 Linux 下通 过自带的软件就能实现 RAID 功能,这样便可省去购买昂贵的硬件 RAID 控制器和附件就能极大地增强磁 盘的 IO 性能和

收集的55个Linux系统管理中常用的一些shell命令

1.显示消耗内存/CPU最多的10个进程 代码如下: ps aux | sort -nk +4 | tail ps aux | sort -nk +3 | tail 2.查看进程 按内存从大到小排列 代码如下: ps -e -o "%C : %p : %z : %a"|sort -k5 -nr 3.按cpu利用率从大到小排列 代码如下: ps -e -o "%C : %p : %z : %a"|sort -nr 3.查看Apache的并发请求数及其TCP连接状态 代

linux中的解压,压缩命令

tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 和 .tgz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName 压缩多个文件:tar zcvf FileName.tar.gz DirNam

(笔记)Linux下的解压、压缩命令集合

01-.tar格式解包:[*******]$ tar xvf FileName.tar打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!) 02-.gz格式解压1:[*******]$ gunzip FileName.gz解压2:[*******]$ gzip -d FileName.gz压 缩:[*******]$ gzip FileName 03-.tar.gz格式解压:[*******]$ tar zxvf FileName.

Linux系统管理-(13)-网络配置查看ss命令

ss命令:        格式:ss [OPTION]... [FILTER] 选项:                    -t: tcp协议相关                    -u: udp协议相关                    -w: 裸套接字相关                    -x:unix sock相关                    -l: listen状态的连接                    -a: 所有                    

linux基础-第八单元 正文处理命令及tar命令

第八单元 正文处理命令及tar命令 使用cat命令进行文件的纵向合并 两种文件的纵向合并方法 归档文件和归档技术 归档的目的 什么是归档 tar命令的功能 tar命令的常用选项 使用tar命令创建.查看及抽取归档文件 使用tar命令创建归档文件 使用tar命令查看归档文件 使用tar命令抽取归档文件 文件的压缩和解压缩 什么是压缩 压缩的目的 什么是解压缩 gzip命令和gunzip命令 bzip2命令和bunzip2命令 在使用tar命令的同时进行压缩和解压缩 在使用tar命令的同时进行压缩和

linux基础-磁盘阵列(RAID)实例详解

磁盘阵列(RAID)实例详解 raid技术分类 软raid技术 硬raid技术 Raid和lvm的区别 为什么选择用raid RAID详解 RAID-0 RAID-1 RAID-5 Raid-10 Raid的管理 案例:创建一个raid10+冗余盘 磁盘阵列(RAID)实例详解 Raid(磁盘阵列)级别介绍 Raid有"廉价磁盘冗余阵列"的意思,就是利用多块廉价的硬盘组成磁盘组,让数据分部储存在这些硬盘里面,从而达到读取和写入加速的目的:也可以用作数据的冗余,当某块硬盘损毁后,其他硬盘

linux系统管理命令(五)

[教程主题]:1.系统管理命令 [1.1]用户和组管理 在Linux操作系统中,任何文件都归属于某一特定的用户,而任何用户都隶属于至少一个用户组.用户是否有权限对某文件进行访问.读写以及执行,受到系统严格约束的正是这种清晰.严谨的用户与用户组管理系统.在很大程度上它保证了Linux系统的安全性.本节课将对Linux系统中重要的用户和组管理文件进行介绍,并且介绍如何使用命令行对用户和组进行管理. Linux帐号分类 用户帐号 - 用来储存单一用户的数据,你可以使用一个用户帐号,来储存某一个用户的数

Linux系统管理常用命令

Linux系统管理常用命令 分类: Linux2011-01-10 18:26 1538人阅读 评论(0) 收藏 举报 linuxcommandservicenginxuserunix 目录(?)[+] 1. 时间date 1)显示当前时间: date .//Wed Jul 29 11:05:11 CST 2009  2)date修改时间:date -s  date 修改时间2007-08-29 14:41 date -s 14:36:30   //时间为14点36分30秒 date 08291