Linux文件系统管理及RAID,LVM实现

  • 文件系统管理工具

  •       内核级文件系统的组成部分
  •        文件系统驱动: 由内核提供
  •        文件系统管理工具: 由用户空间的应用程序提供
 
  • 创建文件系统工具
  •          mkfs 
  •          mkfs.ext2, mkfs.ext3,mkfs,est4, mkfs,xfs ,mkfs.vfat....
  • 检测文件系统工具
  •          fsck
  •          fsck.ext2,.....
  • 查看其属性的工具
  •           dumpe2fs, tune2fs
  • 调整文件系统特性
  •           tune2fs
  •  ext系列文件系统的管理文件工具
  •          mkfs.est2 , mkfs.est3, mkfsest4
  •  ext 系列文件系统专用管理工具
  •    mke2fs[options]deivce
  •          -t[ext2],3,4 指明要创建的文件系统类型
  •          -b{1024|2048|4096}:指明文件系统的块大小;
  •          -L LABEL:指明卷标;
  •          -J创建有日志功能的文件系统ext3;
  •           -i#:bytes-per-inode,指明inode于字节的比率;即没多少节创建一个inode;
  •           -N#:直接指明要给此文件系统创建的inode的数量;
  •           -m#:指定预留空间,百分比:
  •           -O[^]FEATURE:指定的特性创建目标文件系统
 
  • e2label命令:卷标的查看与设定
  •         查看:e2label drvince
  •         设定:e2label device LABEL
  • tune2fs:查看或修改ext系列文件系统的某些属性;
  •        块大小创建后不可更改;
  •             tune2fs[optins]device
  •            -l查看超级块的内容; 
  •                   修改指定文件系统属性
  •             -j:ext2 -->ext3
  •             -L LABEL:修改卷标;
  •             -m #:调整预留空间百分比
  •             -O[^]:关闭或开启某中特性  
  •             -o [^]:开启或者关闭某种默认挂载选项
  •               acl ^acl
  •              dumpewfs:显示ext系列文件系统的属性信息
  •                     dumpe2fs [-h] device
  • fsck:用于实现文件系统检测的工具

  •         因进程意外终止或系统崩溃等 原因导致定稿操作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文件系统;建议,离线进行;
  •             -t fstype:指明文件系统类型;
  •             -a:无需交互而自动修复所有错误;
  •             -r:交互式修复;
  •       e2fsck  [optin]device
  •            -y:对所有问题自动回答yes;
  •            -f:即便文件系统处于clean状态,也要强制进行检查
 
  • Centos 6如何使用xfs 文件系统;
  •      #yum -y install xfspiogs
 
  • 创建:
  •       mkfs -t ext2 =mkfs.ext2
 
  • blkid:
  •      blkid device
  •      bldik -L label:根据LABEL定位设备
  •      bldik -U UUID:根据UUID定位设备
  • swap文件系统:
  •      Linux上的交换分区必须使用独立的文件系统;
  •      且问津系统的Sysrem ID必须为82;
  •      创建swap设备:mkswap命令
  •      mkswap [option] device
  •      -L LANEL:指明卷标
  •      -f:强制 
 
  • window无法识别LInux的文件系统,因此,存储设备需要两种系统之间交叉使用时,应该使用sindows和linux同时支持的文件系统fat32(vfat)
  •       # mkfs.vfat device
  • 文件系统的使用:

  •         首先要"挂载": mount命令和umount命令
  •         根文件系统这外的其他文件系统要想能够被访问,都必须通过"关联"至根文件系统上的某个目录来实现,此关联操作即为"挂载";此目录即为挂载点:,
  •         挂载点:mount_point ,用于作为令一个文件系统的访问入口:
  •           1 , 事先存在;
  •           2 , 应该使用未被或不会被其他进程使用到的目录;
  •           3 , 挂载点下原有的文件将会被隐藏;
  • mount命令:
  •        mount [-fnrsvw] [-t vfstype] [-o options] device dir
  •           -r :只读挂载
  •           -w:读写挂载
  •           -n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中;-n用于禁止此特性;
  •           -t :指明要挂在的设备文件系统类型;可省略,此时mount会通过blkid来判断要挂载的设备文件
  •           -L:挂载时一卷标的方式指明设备;
  •           -U UUID:挂载时以UUID的方式指明设备;
  •                   mount -U UUID dir
  •            -o options:挂载选项
  •            syunc/asyunc:同步/异步操作
  •            atime/noatime:文件或目录在被访问时上是否更新其访问时间戳;
  •            diratime/nodiratime:目录在被访问时是否更新其访问时间戳
  •  remount:重新挂载;
  •    acl:支持使用facl功能;
  •            # mount -o acl device dir
  •            # tune2fs -o acl device
  •    ro:只读
  •    rw:读写
  •            dev/nodev:次设备上是否允许穿点设别备文件;
  •            exec/noexec :是否允许运行设备上的程序;
  •            user/nouser:是否允许普通用户挂载此文件系统
 
  • defaults
  •      查看当前系统所有已挂载的设备;
  •      mount
  •           cat /etc/mtab
  •           cat /proc/mounts
  • 挂载光盘:
  •            mount -r /dev/cdrom mount_point
  •   光盘设备文件: /dev/cdrom, /dev/dvd
  • 挂载U盘:
  •    实现识别U盘的设备文件;
  •    挂载本地的回环设备:
  •           mount -o loop /PATH/TO/SOME_LOOP_FILE 
  •           umount1
  •           umount device |dir
  •     注意 :正在对进程访问的程序的挂载点不能被卸载;
  • 查看被那个或那些进程所占用;
  •           lsof MOUNT_POINT
  •           fuser -v MOUNT_POINT
  • 交换分区的启用和禁用:
  •    启用:swapon
  •            swapon [option][DEVICE] 
  •           -a:定义在/etc/fstab文件这的所有swap设备;
  •    禁用:swapof
  •             swapoff DEVICE
  •  设定除根文件系统以外的其他文件系统能够开机时自动挂载:/ect/fstab文件每行定义一个要挂载的文件系统及相关属性;
  •    6个字段
  •   1 . 要挂载的设备:
  •              设备文件:
  •                LABEL
  •                UUID      
  •                伪文件系统:如 sysfs, proc ,tmpfs等
  •   2 . 挂载点
  •         swap类型的设备的挂载点为swap;
  •   3 . 文件系统类型
  •   4 . 挂载选项
  •         defaults :使用默认挂载选项;
  •         如果要同时指明读个挂载点选项,彼此间以事情分隔;
  •         defsults, acl , noatime ,noexec
  •  5 .  转储频率:
  •          0:从不备份
  •          1:每天备份
  •          2:每隔一天备份
  •  6 .  自检次序
  •          0:从不自检
  •         1: 首先自检,通常只能是根文件系统可用;
  •         2:次级自检
  •         mount -a 可自动挂载定义在此文件中的所支持自动挂载的设备;
  • df和du
  •       df:
  •           df[option]....file..
  •              -l:仅显示本地文件的相关信息;
  •              -h:显示容易识别信息状态
  •              -i:显示inode的使用状态而非blocks
  •      du:
  •            du[option]....file..
  •               -s :sumay
  •               -h:human -readable
  • 配置配额系统:

  •  在内核中执行
  •     以文件系统为单位启用
  •     对不同组或者用户的策略不同
  •     根据块或者节点进行限制
  •     执行软限制(soft limit)
  •     硬限制(hard limit)
  •  初始化
  •     分区挂载选项:usrquota , grpguota
  •     初始化数据库:quotacheck
  • 执行
  •     开启或者取消配额:quotaon , quotaoff
  •     直接编辑配额:edquota username
  •      在shell中直接编辑
  •      setquoat usename 4096   512 40 50  /foo
  • 定义原始标准用户:
  •     qdquota   -p  user1 user2
  • 报告配额状态:
  •     用户调查:quota username
  •     配额概述:repquota /mountpoint
  • 配额实现

  • 启用配额功能
  • vim /etc/fstab
  • defaults usrquota,grpquota
  • mount -o remount /home
 
  • 创建配额数据库
  • quotacheck -c  u/g  /home
  • 启用数据库
  • quotaon /home
  • quotaon -p /home 查看
  • edquota user1
  • setquota user1 800000 1000000 0 0 /home
  • edquota -p user1 user2
  • edquota -g g1
  • repquota /home
  • quota user1
  • 测试
  •    用户登录 /home建文件
  • 迁移分区

  • 示例:
  • 1 . 备份
  •       /home
  • 2 . 创建分区
  •       /dev/sdc1
  • 3 . 格式化 
  •       mkfs.ext4 /dev/sdc1
  • 4 . 挂载
  •       mkdir /mnt/home
  •       mount /dev/sdc1 /mnt/home
  • 5 . 设置单用户模式
  •       init 1
  • 6 . 原文件的属性及权限一起拷贝到新的目录下
  •       cp -av /home/* /mnt/home/将home
  • 7 . 删除原目录
  •      rm -rf /home/*
  • 8 . 编辑配置文件
  •       vim /etc/fstab
  •      /dev/sdc1 /home ext4 defaults 0 0
  •      挂载
  •      mount -a
  •      查看
  •      ls /home/
  •      du -sh /home
  • 9 . 切换用户模式
  •      init 5
  •     卸载
  •     umount /mnt/home
  •     rmdir  /mnt/home
  • 注意根目录迁移不了
 
  • RAID磁盘阵列

  •     Redundant Arrays of Inexpensvie DisksIndpendent
  •     Berkeley: A case for Redundent Arrays of Inexpensive Disks RAID
  •          提高IO 能力
  •          磁盘并行读写
  •          提高耐用性
  •               磁盘冗余来实现
  •        级别:多块磁盘组织在一起的工作方式有所不同;
  • RAID实现的方式;
  •      外接式的磁盘阵列;
  •      内接式RAID;主板集成RAID控制器  ;存在与BIOS里
  •      Softare RAID;
  •  级别:level
  •       RAID-0 0, 条带卷,strip
  •       RAID-1 1,镜像卷 ,mirror
  •       RIAD-2
  •        .....
  •  RAID -0:
  •        读 ,写性能提升
  •        可用空间:N*min(S1,S2.....)
  •        无容错能力
  •         最少磁盘数:2,2+
  •  RAID-1
  •        读性能提升, 写性能略有下降;
  •        可用空间:1*min(S1,S2,....)
  •         有冗余能力
  •         最少磁盘数:2,2+
  •  RAID-5:
  •         读,写性能提升
  •         可用空间:(N-1)*min(S1,S2,...)
  •         有容错能力:1块磁盘
  •         最少磁盘盘数:3,3+
  •  RAID-6
  •         读, 写性能提升
  •         可用空间:(N-2)*min(S1,S2,...)
  •         有容错能力:2快磁盘
  •         最少磁盘数:4,4+
  • RAID-10:
  •         读写性能提升
  •         可用空间:N*min(S1,S2,...)/2
  •         有容错能力:每组镜像最多只能坏一块;
  •         最少磁盘数:4,4+
  • RAID-01:
  •         JBOD:Just a  Bunch of Disks 
  •        功能:将多块磁盘的空间合并一个大的连续空间使用;
  •        可用空间;sum(S1,S2,..)
 
  • 常用级别:RAID -0,-1,-5,-10,-50,JBOD
  •  实现方式:
  •       硬件实现方式
  •       软件实现方式
 
  • Centos6上的软件RAID的实现
  •  结合内核中的md(multi devices)
  •  mdadm:模式化的工具
  •       语法格式:mdadm [mode] raiddevice[option]component-devices
  •       支持RAID级别: LINEAR,RAID0,1,4,5,6,10;
  •  模式:
  •      创建: -C
  •      装配:-A
  •      监控:-F
  •      管理:-f,r,a,
  •       raiddevice :/dev/md#
  •       component-devices:任意设备 
  • 软件RIAD的实现
  •     -C:创建模式
  •     -n#:使用#个块设备来创建次RAID;
  •      -l#:指明要创建的RAID的级别;
  •      -a{yes|no}:自动创建目标RAID设备的设备文件;
  •      -c :指明块大小
  •      -x#:指明空闲盘的个数
  •      -D显示raid的详细信息;
  •      mdadm-D /dev/md#
  • 软RAID管理
  •   生成配置文件: mdadm -Ds >> /etc/mdadm.conf
  •        以防止停用后无法启用
  •        停止设备:mdadm -S /dev/md0
  •        激活设备:mdadm -As/dev/md0
  •        强制启动:mdadm -R/dev/md0
  •        删除raid信息:mdadm --zero-superblock /dev/sdb
  •        删除前取消挂载
  • 管理模式:
  •      -f:标记指定磁盘为损坏''
  •      -r:移除磁盘
  •      -a:添加磁盘
  • 观察md状态:
  •      cat /proc/mdstat
  • 停止md设备:
  •       mdadm -S /de/md#
  •  watch:
  •       -nl :刷新时间隔,单位是秒:
  •        watch -n# COMAND
 
  • 软RAID配置示例:

  •      1,使用mdadm创建并定义RAID设备
  •        mdadm -C /dev/md5 -a yes -5 -n 3 -x 1 /dev/sd{b,c,d,e}1
  •      用文件系统对每个RIAD设备进行格式化
  •       mke2fs -j /dev/md0
  • 示例实现raid0,raid5

  • raid0
  • 1 分区
  •    /dev/sdb1 /dev/sdc1  创建的时候后注意改ID  (t  fd )
  •     partx -a /dev/PARTITION 同步
  • 2 .  创建raid设备
  •    mdadm -C /dev/md0  -a yes -l 0 -n 2 /dev/sd{b,c}1
  • 3 . 格式化
  •    mkfs.ext4 /dev/md0
  • 4 . 挂载
  •      mkdir /mnt/raid0
  •      mount /dev/md0 /mnt/raid0
  •    写配置文件
  •    vim /etc/fstab
  •    UUID="38b2b0c8-e96b-4f07-b74b-52510d1aff9a"  /mnt/raid0 ext4 defaults 0 0
 
  • raid5
 
  • 1 . 分区
  •     /dev/sdd1 /dev/sde1 /dev/sdf /dev/sdb2
  •      partx -a /dev/PARTITION同步
  • 2 . 创建raid设备
  •     mdadm -C /dev/md5 -a yes -l 5 -n 3  -x 1 /dev/sdd1 /dev/sde1 /dev/sdf /dev/sdb2
  •     总共四个其中一个是备用
  • 3  格式化
  •      mkfs.ext4 /dev/md5
  • 4 . 挂载
  •      mkdir /mnt/raid5
  •      mount /dev/md5 /mnt/raid5
 
  • 5 . 生成配置文件 否则禁用后启用不了
  •      mdadm -Ds > /etc/mdadm.conf
  • 6 .  禁用和启用
  •       umount /mnt/raid0
  •       mdadm  -S /dev/md0
  •       mdadm  -A /dev/md0
 
  • 模拟损坏
  •       mdadm /dev/md5 -f /dev/sde1
  •       -f:指定其设备失败
  • 移除
  •       mdadm /dev/md5 -r /dev/sde1
  • 恢复
  •     添加到raid成员
  •      mdadm /dev/md5 -a /dev/sde1
 
  •    增加raid成员数量从3变为4个
  •       mdadm -G /dev/md5 -n 4 -a /dev/sdd3
  •       resize2fs /dev/md5 同步文件系统
 
  • LVM:逻辑卷管理器:

  •    LVM:logical Volume Manager ,Version :2
  •    允许对卷进行方便操作的抽象层,包括重新设定文件系统大小.
  •    允许在多个物理设备重新组织文件系统
  • 步骤:
  •    将设备指定为物理卷,用一个或者多个物理卷来创建一个卷组;
  •    物理卷是用固定大小的物理区域来定义的;
  •    在物理卷上创建的逻辑卷是由物理区域(PE)组成;
  •    可以在逻辑卷上创建文件系统;
  •     pv-->vg-->lv
  • 创建:pv物理卷:
  •    如果创建分区需修改文件ID为8e,直接使用硬盘则不需要.
  •    pvcrate /dev/sdb
  •    pvcreate /dev/sdc
  •    pvdisplay查看
  • 创建卷组指定pe大小
  •    vgcreate -s 16M vg0 /dev/sd{b,c}
  •    vgdisplay查看 
  • 创建逻辑卷:注意指定组的原空间大小
  •    指定名称及大小分为-L 以G为单位和-l以PE为单位,最后指定组名
  •     lvcreate -n lv0 -L 50G /-l 1000 vg0
  •     lvcreate -n lv0 -l 1-100% 1000 vg0 按照百分比指定大小
  •     lvdisplay查看
  • 格式化文件系统,及挂载
  •     mkfs.ext4  /dev/vg0/lv0
  •     mkdir /mnt/lv0 
  •     mount /dev/vg0/lv0  /mnt/lv0
  • 扩展逻辑卷:根据vg空间大小扩展
  •     lvextend -L 100G /dev/vg0/lv0 (用户不受其扩容影响)
  •     因为其新扩的空间没有文件系统所以必须给其创建文件系统如下
  •     resize2fs /dev/vg0/lv0   (ext文件系统系列)
  •     xfs_growfs /dev/vg0/lv0 xfs文件系统
  • 把剩下的所有空间都占用
  •      lvextend -l +100%FREE /dev/vgo/lvo
  • 卷组扩容
  •      vgextend vg0 /dev/sdd
  • 当其中一个卷组其中有损坏则将其PE移到组内另外的有足够空间的卷,例如sdc损坏
  •       pvmove /dev/sdd
  • 将损坏的卷移除
  •       vgreduce vg0 /dev/sdc
  •       pvremove /dev/sdc
  • 卷组消减:注意原文件的大小或者备份
  •      umout /mnt/lv0
  •      resize2fs /dev/vg0 50G
  •      e2fsck -f /dev/vg0/lv0 (检查)
  •      resize2fs /dev/vg0 50G
  •      lvreduce - L 50G /dev/vg0/lv0
  •      mount /dev/vg0/lv0 /mnt/lv0
  • xfs 只能扩不能缩
  •  改名
  •     vgrename vg0  XXX
  •     pvscan 扫描
  •     vgexport vgxxx  导出
 
  • dm:设备映射组件:device mapper
  •     将一个或多个底层块设备组织成一个逻辑设备的模块;
  •     逻辑卷可支持扩展和收缩不影响原数据;
  •      /dev/dm-#
  •      /dev/mapper/VG_NAME-LV _NAME
  •      /dev /mapper/vol0-root <---/dev/VG-NAME/LV_NAME符号链接 
  • pv物理卷:管理命令:
  •       pvs:简要pv信息显示
  •       pvdisplay:显示pv的详细信息
  •       pvcreate: /dev/DEVICE
  •       pvremove:删除
  • vg卷组管理命令
  •       vgs:vg简要信息和查看
  •       vgdisplay:vg详细信息查看
  •       vgcreate:创建vg
  •              -s:指明PE大小
 
  • lv逻辑卷管理
  •      lvs: 现有逻辑卷
  •      lvdisplay:查看详细lv信息
  •     -L:指明逻辑卷大小空间
  •     -l :指定分配盘区数量
  •     -n:指明名称
  •     -v:指明在哪个vg创建
  • 语法格式:
  •       lvcreate -L # -n  NAME  VolumeGroup
  •  扩展逻辑卷:支持在线扩展
  •       lvextend -L +#,#  /dev/VG_NAME/LV_NAME
  •       resize2fs /dev/VG_NAME/VG_NAME
  •  缩减逻辑卷:缩减后的空间一定要容纳本身文件大小空间
  •        umount /dev/VG_NAME/VG_NAME
  •        e2fsck -f /dev/VG_NAME/LV_NAME 
  •        lvreduce   /dev/VG_NAME/LV_NAME #
  •        lvreduce -L [-]# /dev/VG_NAME/LV_NAME
 
  • dd:命令:通过块复制
  •     用法: dd  if=/PTAH/FROM/SRC of=/PATH/TO/DEST
  •                bs=# block  size,复制单元大小
  •               count=# 数量复制多少的bs
  • 磁盘拷贝:
  •     dd if=/dev/sda of=/dev/sdb
  •   将/dev/sda块及属性copy到/dev/sdb
  •   备份MBR
  •       dd  if=/dev/sfa of=/tmp/mbr.mbr  bs=512 count=1
  •    破坏MBR中的bootloader:分区表 
  •        dd if=/dev/zero of=/dev/sda bs=256 count=1
  •  两个特殊设备:
  •       /dev/null:数据黑洞
  •       /dev/zero:零
 
  •  快照:snapshot
  •      快照原理:将当前磁盘文件数据储存备份(只包括其修改的文件数据)
  •      可以多次使用,(恢复后快照消失)
  •  快照使用:
  •      逻辑卷快照
  •       lvcreate -s -n bblv0  -L 1G /dev/vg0/lv0
  •    挂载
  •      mkdir /mnt/snap
  •      mount -r /dev/vg0/bblv0 /mnt/snap(  -r 只读)
  •     删除快照
  •       umount  /mnt/bblv0
  •      lvremove  /dev/vg0/bblv0
  •    恢复
  •     lvconvert --merge  /dev/vg0/bblv0
  •     重新挂载

转载于:https://www.cnblogs.com/Xun1521/p/6798601.html

你可能感兴趣的:(Linux文件系统管理及RAID,LVM实现)