linux学习第四周总结

磁盘储存和文件系统

  • 分区
  • 文件系统
  • 挂载
  • RAID
  • LVM

一、分区

分区的作用:  
    1.优化I/O性能  
    2.实现磁盘空间配额限制
    3.提高修复速度
    4.隔离系统和程序
    5.安装多个OS
    6.采用不同文件系统
两种分区方式:MBR,GPT
MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T  
0磁道0扇区:512bytes  
    446bytes: boot loader
    64bytes:分区表,其中每16bytes标识一个分区
    2bytes: 55AA
    MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
		GPT:支持128个分区,使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)    
		列出块设备
				lsblk
创建分区使用:
    fdisk 创建MBR分区
    gdisk 创建GPT分区
    parted 高级分区操作
重新设置内存中的内核分区表版本
    partprobe   
	 gdisk /dev/sdb 类fdisk 的GPT分区工具
		fdisk -l [-u] [device...] 查看分区
		fdisk /dev/sdb 管理分区
子命令:
    p 分区列表
    t 更改分区类型
    n 创建新分区
    d 删除分区
    v 校验分区
    u 转换单位
    w 保存并退出
    q 不保存并退出 
查看内核是否已经识别新的分区
    cat /proc/partations

二、文件系统

定义:文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统 

从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等
文件系统类型:  
    ext2(Extended file system) :适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区
    ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统  
    ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升  
    xfs:SGI,支持最大8EB的文件系统btrfs(Oracle), reiserfs, jfs(AIX), swap
    光盘:iso9660
    Windows:FAT32, exFAT,NTFS
    Unix: FFS(fast), UFS(unix), JFS2
    网络文件系统:NFS, CIFS
    集群文件系统:GFS2, OCFS2(oracle)
    分布式文件系统: fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
    RAW:未经处理或者未经格式化产生的文件系统
创建文件系统  
    mkfs命令:
     (1) mkfs.FS_TYPE /dev/DEVICE
        ext4
        xfs
        btrfs
        vfat
     (2) mkfs -t FS_TYPE /dev/DEVICE
        -L 'LABEL' 设定卷标
文件系统检测和修复
  常发生于死机或者非正常关机之后
挂载为文件系统标记为“no clean”  
注意:一定不要在挂载状态下修复
fsck: File System Check
    fsck.FS_TYPE
    fsck -t FS_TYPE
    -p 自动修复错误
    -r 交互式修复错误
    FS_TYPE 一定要与分区上已经文件类型相同
e2fsck:ext系列文件专用的检测修复工具
    -y 自动回答为yes
    -f 强制修复      

三、挂载mount

定义:挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为  
卸载:为解除此关联关系的过程  
挂载点下原有文件在挂载完成后会被临时隐藏
挂载点目录一般为空
挂载方法:mount DEVICE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
mount [-fnrsvw] [-t vfstype] [-o options] device dir
    device:指明要挂载的设备;
    (1) 设备文件:例如/dev/sda5
    (2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
    (3)  UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e
    (4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
    事先存在,建议使用空目录
    进程正在使用中的设备无法被卸载
挂载点和/etc/fstab
    配置文件系统体系
    被mount、fsck和其它程序使用
    系统重启时保留文件系统体系
    可以在设备栏使用文件系统卷标
    使用mount -a 命令挂载/etc/fstab中的所有文件系统
工具dd
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
    if=file 从所命名文件读取而不是从标准输入
    of=file 写到所命名的文件而不是到标准输出
    ibs=size 一次读size个byte
    obs=size 一次写size个byte
    bs=size block size, 指定块大小(既是是ibs也是obs)
    cbs=size 一次转化size个byte
    skip=blocks 从开头忽略blocks个ibs大小的块
    seek=blocks 从开头忽略blocks个obs大小的块
    count=n 复制n个bs

四、RAID

定义:多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
提高IO能力
    磁盘并行读写
提高耐用性
    磁盘冗余来实现
级别:多块磁盘组织在一起的工作方式有所不同
RAID实现的方式
    外接式磁盘阵列:通过扩展卡提供适配能力
    内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
    软件RAID:通过OS实现
RAID级别
    RAID-0:条带卷,strip
    RAID-1:镜像卷,mirror
    RAID-2
    ..
    RAID-5
    RAID-6
    RAID-10
    RAID-01

五、LVM

逻辑卷管理器(LVM):允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
允许在多个物理设备间重新组织文件系统
    将设备指定为物理卷
    用一个或者多个物理卷来创建一个卷组
    物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
    在物理卷上创建的逻辑卷是由物理区域(PE)组成
    可以在逻辑卷上创建文件系统
LVM可以弹性的更改LVM的容量
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量    
pv管理工具 
    显示pv信息
        pvs:简要pv信息显示
        pvdisplay
    创建pv
        pvcreate /dev/DEVICE
    删除pv
        pvremove /dev/DEVICE
vg管理工具
    显示卷组
        vgs
        vgdisplay
    创建卷组
        vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName 
        PhysicalDevicePath [PhysicalDevicePath...]
    管理卷组
        vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
        vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
    删除卷组
        先做pvmove,再做vgremove
lv管理工具
    显示逻辑卷
        lvs
        Lvdisplay
    创建逻辑卷
        lvcreate -L #[mMgGtT] -n NAME VolumeGroup
        lvcreate -l 60%VG -n mylv testvg
        lvcreate -l 100%FREE -n yourlv testvg
    删除逻辑卷
        lvremove /dev/VG_NAME/LV_NAME
    重设文件系统大小
        fsadm [options] resize device [new_size[BKMGTEP]]
        resize2fs [-f] [-F] [-M] [-P] [-p] device [new_siz
        xfs_growfs /mountpoint
扩展和缩减逻辑卷
    lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
    resize2fs /dev/VG_NAME/LV_NAME
    lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME
缩减逻辑卷:
    umount /dev/VG_NAME/LV_NAME
    e2fsck -f /dev/VG_NAME/LV_NAME
    resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
    lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
    mount
跨主机迁移卷组
   源计算机上 
     1 在旧系统中,umount所有卷组上的逻辑卷
     2 禁用卷组
        vgchange –a n vg0 
        lvdisplay
     3 导出卷组
        vgexport vg0 
        pvscan
        vgdisplay
     4 拆下旧硬盘     
    在目标计算机上
     5 在新系统中安装旧硬盘,并导入卷组:vgimport vg0 
     6 vgchange –ay vg0 启用
     7 mount所有卷组上的逻辑卷
使用LVM快照
    为现有逻辑卷创建快照
        lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/data
    挂载快照
        mkdir -p /mnt/snap
        mount -o ro /dev/vg0/data-snapshot /mnt/snap
    恢复快照
        umount /dev/vg0/data-snapshot
        umount /dev/vg0/data
        lvconvert --merge /dev/vg0/data-snapshot 
    删除快照
    umount /mnt/databackup
    lvremove /dev/vg0/databackup