磁盘管理

1 文件管理

用户或组配额管理
为了设定每用户对文件系统的使用个配额分配,文件系统配额统一管理
配置配额系统
  在内核中实现执行
  以文件系统为单位启用
  对不同组或者用户的策略不同
    根据块或者节点进行限制
      执行软限制 soft limit
      硬限制 hard limit
如果要实现配额分配需要挂载的文件系统支持 quota功能
在挂载选项中添加 usrquota,grpquota
并且初始化数据库 quotacheck
quotacheck 
    -u初始化用户quota
    -g初始化组quota
为用户开启或关闭配额 quotaon quotaoff
直接编辑配额 edquota username mount_point对某个用户进行磁盘配额分配
同时也可以 直接使用shell进行编辑
setquota username soft hard  (inode)soft (inode)hard
定义原始标准用户
edquota -p username  可以直接设定为原始的磁盘配额使用额度
报告配额状态
用户调查  quota username
配额概述 repquota /path/to/mount_point 可以查看指定用户或组对本分区的磁盘使用率

2 RAID

RAID Redundant Array of Inexpensive(Independent) Disks
1988 年由加利福尼亚大学伯克利分校研发
将多个磁盘合成一个"阵列"来提供更好的性能,冗余或两者都提供
RAID 的好处
提高IO能力
  磁盘并行读写
提高耐用性
  磁盘冗余来实现
级别 多块磁盘组织在一起的工作方式有所不同
RAID实现的方式
  外接式磁盘阵列 通扩展卡提供适配功能
  内接式RAID 主板集成RAID控制器
    安装OS前在bios里设置
  软件RAID 通过OS实现
常见的RAID级别
  RAID-0 条带式 即将数据分成多分 分别存储到不同磁盘但是当有一个磁盘损坏,整个数据将都不可以使用
    可用空间 N*min(D1,D2...) 
    无容错能力
    最少磁盘 2
  RAID-1 镜像 即将数据存储成两份 当有一个损坏时,数据不会丢失,还可以继续使用
    读性能提升,写性能略有下降
    可用空间 1*min(D1,D2...)
    有冗余能力
    最少磁盘 2
  RAID-4 多块数据盘异或运算,将异或数据存放到专用检验盘,但是不能同时坏两张盘
    可用空间(n-1)*min(D1,D2...)
    最少磁盘数 3
  RAID-5  是RAID0和RAID1 折中的方案,将校验为存放到不同磁盘上
  可用空间(n-1)*min(D1,D2...)
  容错能力最多1块磁盘损坏  
  最少磁盘数 3
  RAID-10 是先组合raid1然后在此基础上在组合raid0
    读写能力提升
    可用空间 每一组镜像最多坏一块
    最少磁盘数 4
软RAID的实现
  mdadm 模块化工具
    创建  -C
    装配  -A
    监控  -F
    管理 -f(损坏) -r(移除) -a(添加)
  -C 创建模式
      -n 是有多少块设备创建此RAID 不加空闲磁盘
      -l 指定RAIDjibie
      -a {yes|no} 自动创建目标RAID设备的设备文件
      -c 指定chunk_size 的大小
      -x 指定空闲磁盘的个数
  -D 显示RAID的详细信息
      mdadm -D /dev/md#
  -f 将某个磁盘标记为损坏
  -a 添加磁盘
      mdadm -G /dev/md# -n# -a /dev/sd##
  -r 移除磁盘
生成配置文件 mdadm -D -s > /etc/mdadm.conf
停止设备 mdadm -S /dev/md#
激活设备 mdadm -A -s /dev/md#
强制启动 mdadn -R /dev/md#
删除RAID信息 mdadm --zero-super-block /dev/sd##
  注意需要先将磁盘从raid中移除 在删除raid信息 
1 :创建一个可用空间为1G 的RAID1 设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup 目录
  1 mdadm -C /dev/md0 -l 1 -n 2 -x 1 /dev/sdc1 /dev/sdf1 mkfs.ext4 /dev/
  2 编辑 /etc/fstab 添加一行
   /dev/md0 /backup  ext4 default 0 0
  
2 :创建由三块硬盘组成的可用空间为2G 的RAID5 设备,要求其chunk 大小为256k ,文件系统为ext4 ,开机可自挂载至 至/mydata
  1 mdadm -C /dev/md1 -l 5 -n 3 -c 256k /dev/sd{c1,d1,e1}
  2 编辑 /etc/fstab 添加一行
   /dev/md0 /mydata  ext4 default 0 0

3 lvm

lvm logical volumn mangement 逻辑卷管理器
  允许对多个进行方便操作的抽象层,包括重组设定文件系统的大小
  允许在多个设备间重新组织文件系统
    将设备指定为逻辑卷
    用一个或多个物理卷来创建卷组
    物理卷使用固定大小的物理区域(physical Extent,PE) 来定义
    在物理卷上创建逻辑卷
    可以在逻辑卷上创建文件系统  
lvm 
  dm:device mapper 将多个底层设备块组织成一个设备的模样
  设备名  /dev/dm-#
  软连接  /dev/mapper/vg_name/lv_name
         /dev/mapper/lv_name
         /dev/vg_name/lv_name
         /dev/vg_name/lv_name
pv
    pvcreate 创建pv 
        pvcreate -v device 带过程的创建pv
    pvremove device
    pvmove 移动数据 将放到此分区中的数据放到其他同卷组的其他pv上
vg
    vgcreate vgname device[pv]
        -s 指定pe大小
    vgextend volumegroup device
    vgreduce volumegroup device 之前要做 pvremove device

    vgremove vgname
lv
    lvcreate 
        -s le 大小
        -n lvname
        -l pe 的个数
        -L lv大小
    lvcreate -L # -n lvname vgname
    lvremove /dev/vg_name/lvname

扩展逻辑卷
    lvextend -L [+]#单位 /dev/vg_name/lvname
        lvextend -L 5G /dev/vg_name/lvname
        逻辑空间虽然扩大了,但是文件系统大小并没有变化所以接下来要扩展文件系统大小
        e2fsck -f /dev/vg_name/lvname first
        resize2fs /dev/vg_name/lvname lvmresize xfs resizevolumn
缩减逻辑卷 lvreduce
    先缩减文件系统的边界大小 然后修改物理边界大小
        1.卸载文件系统
        2.e2fsck [xfs_repair] -f /dev/vg_name/lvname
        3.resize2fs /dev/vg_name/lvname size
        4.lvreduce -L [-]#单位 /dev/vg_name/lvname
        5. mount
lvm的迁移
        1 取消挂载
        2 确保没有重名的vg vgrename vgnamenewname
        3 vgchange -an newname
        4 vgexport newname
        5 拆除磁盘
          插到另一台机子上
                1 插入新主机
            pvscan 重新扫描一下 pv
            vgimport newname
        vgchange -ay newname
1 、创建一个至少有两个PV 组成的大小为20G 的名testvg的 的VG ;要求PE 大小为16MB,  而后在卷组中创建大小5G 的逻辑卷testlv ;挂载至/users 目录
  1 pvcreate /dev/sdb1 /dev/sdc1
  2 vgcreate -b 16MB testvg /dev/sdb1 /dev/sdc
  3 lvcreate -L 5G -n testlv testvg
  4 mkfs.ext4 /dev/testvg/testlv
2、 新建用户archlinux ,要求其家目录为/users/archlinux,而后su 切换至archlinux 用户,复制/etc/pam.d 目录至自己
的家目录
  1 useradd archlinux -d /users/archlinux
  2 cp /etc/pam.d  /users/archlinux
3 、扩展testlv 至7G ,要求archlinux 用户的文件不能丢失
  1 umount fs
  2 lvextend -L 7G /dev/tesvg/testlv  
  3 lvextend -r -L 7G /dev/tesvg/testlv  可以不用在扩展文系统
  4 fsck.ext4 -f /dev/testvg/testlv                     
  5 resize2fs  /dev/testvg/test/lv 7G
  6 mount

4 、收缩testlv 至3G ,要求archlinux 用户的文件不能丢失
  1 umount fs
  2 fsck.ext4 -f /dev/testvg/testlv
  3 resize2fs /dev/testvg/testlv 3G
  4 lvreduce -L 3G /dev/testvg/testlv
5 、对testlv 创建快照,并尝试基于快照备份数据,验正快照的功能
 lvcreate -L 4G -p r -s -n snap_testvg /dev/testvg/testlv

你可能感兴趣的:(磁盘管理)