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.6
bzcat - decompresses files to stdout
-d:解压缩
-#:指定压缩比 1-9 默认是6
-k:保留源文件不删除创建新的压缩文件
xz:
xz, unxz, xzcat, - Compress or decompress .xz and .lzma files
-d:解压缩
-#: 指定压缩比
-k:保留源文件不删除创建新的压缩文件
tar:归档程序
磁带档案
tar [OPTION...] [FILE]..
主选项:
-c:创建档案文件
-x:释放档案文件的内容
-t:查看档案文件中包含的文件
-u/-r:向档案文件中添加新的文件
辅助选项:
-f:指定档案文件的路径 必须放在文件前面
-C:在释放档案文件中的内容时指定释放的路径
-z:在创建档案文件时调用gzip进行压缩
-j:在创建档案文件时调用bzip2进行压缩
-J:在创建档案文件时调用xz进行压缩 (可能不支持)
--exclude:在释放档案文件时,排除某个文件
-k:在释放文件的时候,不会覆盖同名文件
两种特殊文件:
设备文件:
mknod 设备名称 主设备号 次设备号
符号链接文件:
路径
链接:就是访问一个文件的不同的路径;
硬链接:数据块指针指向同一个数据块文件;不能跨文件系统创建硬链接;不能对目录文件建硬链接
符号链接(软链接):用于存储被连接文件的路径的文件;可以跨文件系统创建,也可以对目录创建;但是每次都必须进行两组路径的查找;
ln
ln [option..] 源文件(src_file) 链接文件(link_file)
-s: 创建符号链接,省略该选项,即创建硬链接
-v:显示连接创建的过程
注意:创建符号链接时,如果想要保证该链接文件被复制或被移动到其他路径中依然可用,最好链接至被链接文件的绝对路径
版本管理:
apache: 2.2 2.4
将不同的版本的软件分别放置于不同的目录中,使用符号链接,将软件链接到一个统一路径,
RAID:
IDE:
SCSI:
Redundant Array of Inexpensive Disks廉价磁盘冗余阵列
Redundant Array of independent Disks独立磁盘冗余阵列
RAID的功能:
提高整个存储设备的IO效率:使多个磁盘实现并行读写;磁盘条带化,chunk
提高耐用性: 依靠磁盘冗余实现; 即使磁盘发生故障或损坏也不会影响数据;
RAID实现方式:
硬件实现:通过硬件RAId控制器或适配器将所需的磁盘组织成RAID,而后安装OS;
BIOS程序设置RAID阵列
软件模拟实现:利用操作系统通过系统调用方式来模拟RAID实现;性能低
RAID:
IDE:
SCSI:
Redundant Array of Inexpensive Disks廉价磁盘冗余阵列
Redundant Array of independent Disks独立磁盘冗余阵列
RAID的功能:
提高整个存储设备的IO效率:使多个磁盘实现并行读写;磁盘条带化,chunk
提高耐用性: 依靠磁盘冗余实现; 即使磁盘发生故障或损坏也不会影响数据;
RAID实现方式:
硬件实现:通过硬件RAId控制器或适配器将所需的磁盘组织成RAID,而后安装OS;
BIOS程序设置RAID阵列
软件模拟实现:利用操作系统通过系统调用方式来模拟RAID实现;性能低
RAID的操作级别
RAID0:提高IO性能,条带卷strip;至少两块磁盘,没有冗余容错能力;没有存储空间的浪费;要求每个磁盘必须提供相同大小的存储空间;
RAID1:镜像卷 mirror;提供高可用性,需要两块磁盘;现将数据存入主盘,再将数据存入从盘;写入效率较低,略微提高读效率;磁盘空间整体利用率为50%;有冗余容错的能力
RAID2:
RAID4:具有容错能力的条带卷;多块磁盘进行异或运算,得到所谓的校验值,并且使用专门的一块磁盘存放校验值,即使有一块磁盘损坏,也不会丢失数据;校验盘IO压力巨大,很容易形成性能瓶颈;
RAID5:多块磁盘进行循环冗余校验,将校验值随机分配到不同的磁盘条带中;读写IO性能均明显提升,又不会出现性能瓶颈;磁盘利用率=(n-1)/n*100% ;冗余容错能力,至少需要3块磁盘;
RAID6:多块磁盘进行两轮循环冗余校验,将校验值随机分配到两个不同的磁盘条带中;读写IO性能均明显提升,又不会出现性能瓶颈;最多允许两块磁盘出现损坏或发生故障依然保证数据可用;代价就是增加了计算校验值的时间;
RAID混合级别
RAID01:先做RAID0,在做RAID1
RAID10:先做RAID1,在做RAID0
RAID50:先做RAID5,在做RAID0
RAID7:可以理解为一个存储计算机,自带操作系统以及相应的管理工具,可以独立运行
JBOD:Just a Bunch of Disks,仅仅就是一组磁盘;将多块磁盘的存储空间连接到一起,顺序存放数据;
在centos上可以实现软RAID:
内核提供一个md的模块(multi disks,multi devices)
用户空间需要mdadm的工具来设置和修改md内核模块的参数;
mdadm: 模式化工具
mdadm [mode] <raiddevice> [option...] <component device>
模式包括:
创建模式:-C
-n #:使用#块磁盘来创建RAID
-l #:指示RAID级别
-a {yes|no}: 允许或不允许系统自动创建md设备文件
-c chunk-size:默认512k 必须是2的n次方 指定chunk大小
-x #:指定在阵列中空闲磁盘的数量
装配模式:-A
根据/etc/mdadm.conf指示的RAID进行装配
管理模式:-a添加硬件设备 -r删除 -f标记失效
杂项:-D --scan显示RAID的详细信息 mdadm -D --scan > /etc/mdadm.conf
该配置文件用于RAID设备的再次装配
-S停止RAID设备
-G增长模式加新磁盘
cat /proc/mdstat 查看模拟化
dd:转换和拷贝文件
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添加到卷组中
vgreduce:缩减卷组容量,将PV从卷组中移除,在做此次操作之前,应该先使用pvmove,保证被移除的pv上没有被占用的PE
vgdisplay:显示卷组的详细信息
vgs:显示卷组的简单信息
逻辑卷的管理操作
lvcr
eate:创建逻辑卷
-L LV_SIZE(#(KkMmGg)): 指定逻辑卷的大小,不能超过卷组的容量
-l #%{FREE|VG|ORIGIN|PVS}: 指定逻辑卷占用对应存储单元的百分比
-n 指定逻辑卷的名称
-i #: 在创建逻辑卷的时候以条带的方式创建,并指明这个逻辑卷上有#个条带
-I #:在创建逻辑卷的时候,以条带的方式创建,并指明chunk的大小
lvremove:移除逻辑卷
lvdisplay:显示逻辑卷的详细信息
lvs:显示逻辑卷的剑短信息
lvchange:修改LV的状态
-ay:激活逻辑卷
-an:停用逻辑卷
lvextend:扩展逻辑卷的空间,一定要先扩展逻辑卷的物理边界,在扩展逻辑卷的逻辑边界
使用ext系列文件系统的时候,resize2fs命令扩展逻辑边界
lvreduce:缩短逻辑卷的空间
先缩减逻辑边界,在缩小物理边界
使用ext系列文件系统的时候,resize2fs命令缩减逻辑边界
为了方便的使用逻辑卷,为/dev/dm-#设备创建了两个符号链接文件:
/dev/mapper/vg_name-lv_name --> ../dm-#
/dev/vg_name/lv_name --> ../dm-#
逻辑卷的快照:
快照,本身也是一种逻辑卷;目标逻辑卷的另外一个访问路径;
lvcreat -s -p r -L 50G -n mylv_snopshot /dev/myvg/mylv