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