大数据兼云计算(王明龙)讲师-LINUX-DAY09-QUOTA-RAID-LVM

一.Quota磁盘配额


1.用户做磁盘配额
# fdisk /dev/sdb
# mkfs.xfs /dev/sdb5
# mkdir /sdb5
# vim /etc/fstab          //在defaluts后面添加对用户与用户组的磁盘配额
defaults,usrquota,grpquota
# mount -a
# mount /dev/sdb5 /sdb5
# mount -o remount,usrquota,grpquota /dev/sdb5       //手动挂载方式
# mount | grep sdb5
/dev/sdb5 on /mnt type ext4 (rw,usrquota,grpquota)

# quotacheck -avug      //查看已设置磁盘配额分区
 -a 检查所有磁盘分区
 -v 显示详细过程
 -u 检查用户的磁盘配额
 -g 检查组的磁盘配额
# quotacheck -vug /dev/sdb5   //去掉-a,单独检查指定分区
# cd /sdb5/          
  aquota.group aquota.user lost+found
  两个红色为磁盘配额配置文件
# useradd wml ; passwd wml
# edquota -u wml       //设置磁盘配额,soft为软限制(只是提醒),hard为硬限制(实际限制) 
 Disk quotas for user wml (uid 500):
 Filesystem       blocks    soft    hard    inodes  soft   hard
 /dev/sdb5         0         0       0       0      0     0
 /dev/sdb5         0      20000   30000     0      1     2
                            限制文件大小           限制文件个数

开启与关闭分区磁盘配额功能
# quotaon -avug              //打开所有分区磁盘配额功能
# quotaoff -avug              //关闭所有分区磁盘配额功能
# quotaon -vug /dev/sdb5      //打开指定分区磁盘配额功能
# quotaoff -vug /dev/sdb5      //关闭指定分区磁盘配额功能
# chmod 777 /sdb5
# su - wml
# dd if=/dev/zero of=/sdb5/tt bs=5M count=5
# vim sh.sh
   #!/bin/bash
    for i in {1..100}
    do 
    touch /sdb5/file$i
    done
# chmod +x sh.sh
# ./sh.sh
  touch: cannot touch `/sdb5/file99': Disk quota exceeded
  提示不能创建

# edquota -t   //查看和限期天数
  Grace period before enforcing soft limits for users:
  Time units may be: days, hours, minutes, or seconds
   Filesystem       Block grace period   Inode grace period
    /dev/sdb5           7days         7days
    /dev/sdb5           7days         7days

2.组做磁盘配额
# edquota -g 组名
# edquota -p 有磁盘配额用户  无磁盘配额用户   //复制有磁盘配额用户给无磁盘配额用户
# quota -u 用户名   //查看指定用户的磁盘配额
# repquota -a      //查看所有分区的磁盘配额信息



二.RAID
======

RAID磁盘阵列  (2个或2个以上磁盘组成一个卷,提供冗余功能,提高速度,防止磁盘出错)
Raid0 扩展卷 2个或2个以上的磁盘组成一个卷,无冗余,容量大小是所有磁盘之和,速度最快
Raid1 镜像卷 2个磁盘数据相同,提供很好冗余,可防止磁盘出错,读写性能降低
Raid5 扩展卷 3个或3个以上的磁盘组成一个卷,读写速度较快,其中一个磁盘出问题,其它磁盘不受影响,添加新磁盘,直接插入即可。
Raid常用命令
创建RAID卷:mdadm -C /dev/mdx -lx -nx /dev/sdb{x..x} -x? /dev/sdcx
查看RAID 的信息:mdadm -D /dev/mdx或cat /proc/mdstat
建立配置文件:mdadm -Ds > /etc/mdadm.conf
停止RAID设备:mdadm -S /dev/mdx
启动raid设备:mdadm -As /dev/mdx或mdadm -Ac partitions /dev/mdx -mx
模拟磁盘损坏:mdadm /dev/mdx -f /dev/sdx
移除磁盘:mdadm /dev/mdx -r /dev/sdx或mdadm -misc -zero-superblock /dev/sdx
添加磁盘:mdadm /dev/mdx -a /dev/sdx或resize2fs /dev/mdx
让磁盘进入工作状态:mdadm -G /dev/mdx -n4
监控磁盘:mdadm -monitor /dev/mdx
不重启系统添加新的磁盘分区:partprobe
建立RAID配置文件,使RAID设备在每次重启都生效:mdadm -Ds >/etc/mdadm.conf 




下面建设置分区时都选择fd类型,这是raid的专用分区类型







RAID0配置
1.添加磁盘
2.fdisk -l
3.fdisk /dev/sdb(分2个或2个以上的fd类型分区)
   t(更改分区类型,你可以输入字母l获取类型列表,这里我们选择fd,即linuxraid auto类型)
4.partprobe 不重启系统添加新的磁盘分区
5.mdadm -C -a yes /dev/md0 -l 0 -n 2 /dev/sdb[12]
-------------------------------------------------------------------------------------------------------------------
  软Raid创建时出现以下错误信息
mdadm: Cannot open /dev/sdb: Device or resource busy
mdadm: super1.x cannot open /dev/sdb: Device or resource busy
  mdadm: failed container membership check
  mdadm: device /dev/sdb not suitable for any style of array
  用一下命令可以解决:
  #ls /dev/md*
   /dev/md0
  然后停止对应的md设备:
  #umount /dev/md0         // 卸载RAID设备
  #mdadm --stop /dev/md0   // 是停止先前创建的Raid
  #mdadm -C -a yes /dev/md0 -l 0 -n 2 /dev/sdb[12]  在生成RAID的设备/dev/md0
  出现Continue creating array? y     //array?后输入y,问你是否创建所以是yes.
  解析参数:-l代表指定RAID级别,-n指定几块盘
-------------------------------------------------------------------------------------------------------------------

6.mdadm -D /dev/md0 查看指定RAID设备
7.mkfs.ext3 /dev/md0 格式化RAID设备
8.mdadm -Ds >/etc/mdadm.conf 让RAID设备在每次重启都生效
9.ls /etc/ | grep mdadm查看文件是否创建成功
10.mkdir /md0 创建挂载点
11.mount /dev/md0 /md0 挂载RAID设备
12.cd /md0 下touch w 
13.格式化挂载,在挂载了/dev/md0的情况下执行换盘操作,以下操作都不会成功,操作后直接会崩盘,代表RAID0不支持容错
  # mdadm /dev/md0 -f /dev/sdb2 (设置sdb2失效)   // 模拟其中一个分区损坏
  # mdadm /dev/md0 -r /dev/sdb2 (移除sdb2)
  # mdadm /dev/md0 -a /dev/sdb3 (添加sdb3)
  # cat /proc/mdstat
     如果上面报错:mdadm: set device faulty failed for /dev/sdb5:  Device or resource busy
     这种是正常,因为raid0不提供容错,不提供冗余

14.ls /md0

警告:一定记住,创建RAID设备后,必须按以下流程操作,否则会崩盘
15.df -h                       //查看设备是否挂载
16.umount /dev/md0            //卸载RAID设备
17.mdadm -S /dev/md0          //停止RAID设备
18.mdadm --misc --zero-superblock /dev/sdb1        //从RAID设备中移除磁盘

RAID1配置
1.添加磁盘
2.fdisk -l
3.fdisk /dev/sdb(分3个fd类型分区)
4.partprobe 不重启系统添加新的磁盘分区
5.mdadm -C -a yes /dev/md1 -l1 -n3 /dev/sdb[123]
  或
  mdadm -C -a yes /dev/md1 -l1 -n3 /dev/sdb1 /dev/sdb2 /dev/sdb3

  报错:如果分区数10以上,使用[ ]中括号会报错
  mdadm -C -a yes /dev/md0 -l1 -n 3 /dev/sdb[10..12]
     mdadm: You haven't given enough devices (real or missing) to create this array
  解决:使用{ } 大括号
  mdadm -C -a yes /dev/md0 -l1 -n 3 /dev/sdb{10..12}

6.mdadm -D /dev/md1 查看指定RAID设备
7.mkfs.ext4 /dev/md1 格式化RAID设备
8.mdadm -Ds >/etc/mdadm.conf 让RAID设备在每次重启都生效
9.ls /etc/ | grep mdadm查看文件是否创建成功
10.mkdir /md1 创建挂载点
11.mount /dev/md1 /md1 挂载RAID设备
12.cd /md1 下touch w 
13.mdadm /dev/md1 -f /dev/sdb1模拟其中一块磁盘损坏
14.mdadm -D /dev/md1 查看RAID设备信息   
    Active Devices : 1
    Working Devices : 1 只有一磁盘在工作
    Number  Major  Minor  RaidDevice State
      0    0    0    0   removed
      1    8    2    1   active sync  /dev/sdb2 只有sdb2在工作
      2    8    1    -   faulty spare  /dev/sdb1 而/sdb1已损坏
15.ls /md1 查看到w文件仍然存在
16.mdadm /dev/md1 -a /dev/sdb3 添加一个新硬盘
17.mdadm -D /dev/md1 查看RAID设备信息
    Active Devices : 2
    Working Devices : 2 两个工作磁盘
    Failed Devices : 1 一个损坏磁盘
    Number  Major  Minor  RaidDevice State
      0    0    0    0   removed
      0    8    3    0   active sync  /dev/sdb3 添加新的磁盘已工作
      1    8    2    1   active sync  /dev/sdb2 
      2    8    1    -   faulty spare  /dev/sdb1 而/sdb1已损坏
19.mdadm /dev/md1 -r /dev/sdb1 移除损坏磁盘,因为/sdb1已损坏才可移除,否则是移除不了的。
20.mdadm -D /dev/md1
    Active Devices : 2
    Working Devices : 2 两个工作磁盘 
    Failed Devices : 0  没有损坏磁盘
    Number  Major  Minor  RaidDevice State
      0    0    0    0   removed
      0    8    3    0   active sync  /dev/sdb3 
      1    8    2    1   active sync  /dev/sdb2


警告:一定记住,创建RAID设备后,必须按以下流程操作,否则会崩盘
21.df -h            查看设备是否挂载
22.umount /dev/md1卸载RAID设备
23.mdadm -S /dev/md1停止RAID设备
24.mdadm --misc --zero-superblock /dev/sdb[12] 从RAID设备中移除磁盘
25.mdadm -D /dev/md1   已经查看不到RAID设备了。
  mdadm: cannot open /dev/md1: No such file or directory
26.df -h    会发现没有了/dev/md1设备。
  /dev/sda3       9.6G 2.5G 6.6G 28% /
  tmpfs         122M   0 122M  0% /dev/shm
  /dev/sda1       97M  27M  66M 29% /boot


RAID5
# mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sdc{5,6,7,8}         
//-n指定盘数时,不能包括备用盘,-x指定备用盘,后面/dev/sdc{5,6,7,8} 是-n与-x之和
-C  创建RAID设备名
-l  指定RAID级别
-n  指定几块分区
-x  指定冗余磁盘
# partprobe 不重启系统添加新的磁盘分区
# mkfs.ext4 /dev/md0
# mkdir /md0
# mount /dev/md0 /md0
# vim /etc/fstab 
   /dev/md0       /md0       ext4  defaults    0 0
# mount -a
# ls /md0
# mdadm -Ds > /etc/mdadm.conf      //必须写此配置文件,要不不会产生配置信息
  -D  创建RAID设备文件
  -s  扫描
# mdadm -Ds             //查看RAID配置信息
# mdadm -D /dev/md0          //查看RAID设备信息
# mdadm -f /dev/md0 /dev/sdc5      //模拟磁盘坏掉 faulty 代表坏掉
      mdadm: set /dev/sdc5 faulty in /dev/md0
# mdadm -D /dev/md0
# mdadm -r /dev/md0 /dev/sdc5      //删掉坏掉磁盘
      mdadm: hot removed /dev/sdc5 from /dev/md0
# mdadm -D /dev/md0
# mdadm -a /dev/md0 /dev/sdc5      //添加新磁盘
      mdadm: added /dev/sdc5
# mdadm -D /dev/md0

警告:一定记住,创建RAID设备后,必须按以下流程操作,否则会崩盘
# df -h                       //查看设备是否挂载
# umount /dev/md0
# mdadm -S /dev/md0         //停止RAID设备
# mdadm --misc --zero-superblock /dev/sdc[56]
# mdadm -D /dev/md0         //已经查看不到RAID设备了。
  mdadm: cannot open /dev/md1: No such file or directory

# mdadm -Ds > /etc/mdadm.conf      //必须写此配置文件,要不不会产生配置信息
# mdadm -A /dev/md0         //启动RAID设备

Raid10 (Raid1 + Raid0)配置
1. fdisk /dev/sdb(分区56789都为fd)
2. partprobe 不重启系统添加新的磁盘分区
3. mdadm -C -a yes /dev/md0 -l0 -n2 /dev/sdb{56}
  如出现此信息:mdadm: cannot open /dev/sdb5: Device or resource busy
  进行此操作:
        1.# ls /dev/md*
          /dev/md5
        2.# mdadm --stop /dev/md5
          mdadm: stopped /dev/md5
4. mdadm -C -a yes /dev/md0 -l0 -n2 /dev/sdb[56]   在次重得操作,做RAID0
    Continue creating array? y   在array?后输入y,表示同意创建
5. mdadm -C -a yes /dev/md1 -l1 -n2 /dev/sdb[78]   做RAID1
    Continue creating array? y   在array?后输入y,表示同意创建
6. mdadm -C -a yes /dev/md10 -l10 -n2 /dev/md[01]  把RAID0与RAID1组成RAID10.
    Continue creating array? y   在array?后输入y,表示同意创建
7. mdadm -D /dev/md10或cat /proc/mdstat
8. mkfs.ext4 /dev/md10
9. mkdir /md10 
10. mount /dev/md10 /md10 临时挂载
     或vim /etc/fstab 永久挂载(添写以下内容)
      /dev/md10       /md10       ext4  defaults   0 0
     保存退出后执行mount -a
11. df -h  确认是否挂载上
12. mdadm -Ds > /etc/mdadm.conf建立RAID配置文件
13. ls /etc/ | grep mdadm*  查看配置文件是否创建成功
14. touch /md10/wml.txt 在/md10创建个文件看是否成功
15. mdadm /dev/md10 -f /dev/sdb5 模拟其中一个损坏
mdadm: set device faulty failed for /dev/sdb5:  No such device    //不能这么玩的,要玩分别对md0,md1玩

16. mdadm /dev/md0 -f /dev/sdb5        模拟其中一个损坏,md0是raid0的设备
mdadm: set device faulty failed for /dev/sdb5:  Device or resource busy   
这种是正常,因为raid0不提错容错,不提供冗余
17. mdadm /dev/md1 -f /dev/sdb7        模拟其中一个损坏,md1是raid1的设备,可以提供冗余和容错
    mdadm: set /dev/sdb7 faulty in /dev/md1              //这样的提示表示正常
18. mdadm -D /dev/md10 查看RAID设备信息
19. mdadm /dev/md1 -r /dev/sdb7 -a /dev/sdb9      移除损坏磁盘,同时在加入一块磁盘
    mdadm: hot removed /dev/sdb7 from /dev/md1      //下面两行都是提示
mdadm: added /dev/sdb9
20. mdadm -G -n9 /dev/md1 --force 让增加的设备进入工作状态
21. mdadm -D /dev/md10 查看RAID设备信息
22. mdadm --monitor --mail=root@localhost --delay=10 /dev/md10 [&]       监控RAID设备,[]代表可选项

警告:一定记住,创建RAID设备后,必须按以下流程操作,否则会崩盘
停止,启动,移除RAID设备 
1.df -h                       //查看设备是否挂载
2.umount /md10              //卸载挂载点
3.mdadm -S /dev/md10        //停止RAID设备
  或mdadm -As /dev/md10     //启动RAID设备
4. mdadm --misc --zero-superblock /dev/sdb[5..9]      //从RAID设备中移除磁盘
  mdadm --misc --zero-superblock /dev/sdb5...        //如果上面不行,可以逐个移除


三.LVM
=====

1.创建LVM
# fdisk /dev/sdb         //创建5678分区
# partx -a /dev/sdb      //检查磁盘生效,rhel5
# partprobe            //检查磁盘生效,rhel6 rhel7
# pvcreate /dev/sdb{5,6,7}   //添加到物理卷
# pvscan 或 pvdisplay      //查看物理卷信息
# vgcreate vg0 /dev/sdb{5,6,7}
# vgscan 或 vgdisplay      //查看卷组信息
# lvcreate -L 150M -n lv0 vg0     //创建逻辑卷lv0
-L  指定逻辑大小
-n  指定逻辑名称
# lvscan 或 lvdisplay      //查看逻辑卷信息
# mkfs.ext4 /dev/vg0/lv0
# mkdir /lv0 
# mount /dev/vg0/lv0 /lv0/
# ls /lv0/
# df -h    
  /dev/mapper/vg0-lv0  148M 5.6M 135M  4% /lv0
真实设备名

2.扩容
# df -h             //查看原设备大小
      /dev/mapper/vg0-lv0  148M 5.6M 135M  4% /lv0
# fdisk -l  
      /dev/sdb8        43     56   112423+ 83 Linux
# pvcreate /dev/sdb8         //sdb8分区加入物理卷
# vgextend vg0 /dev/sdb8       //sdb8加入卷组
# lvextend -L +200M /dev/vg0/lv0   //给逻辑卷+200M,如200前不加+号,就是扩容到200M
# df -h              //查看设备没有改变
      /dev/mapper/vg0-lv0  148M 5.6M 135M  4% /lv0
# resize2fs /dev/vg0/lv0        //激活文件系统        
    在rhel7版本中,上面的命令不好用了,xfs_growfs /dev/cl/root 
# df -h              //设备大小已改变
      /dev/mapper/vg0-lv0  341M 6.1M 318M  2% /lv0

3.缩容
# umount /dev/vg0/lv0 
# e2fsck -f /dev/vg0/lv0        //强制检查文件系统
# resize2fs /dev/vg0/lv0 200M     //文件系统缩容到200M
# lvreduce -L -200M /dev/vg0/lv0  //逻辑卷减到200M,如果200M前加“-”号,代表减少200M
# vgreduce vg0 /dev/sdb8        //sdb8物理卷退出卷组
# pvremove /dev/sdb8         //sdb8分区退出物理卷
# mount /dev/vg0/lv0 /lv0
# df -h

更换磁盘和更换数据
# vgextend vg0 /dev/sdb8      //将sdb8加入vg0卷组
# pvmove /dev/sdb7 /dev/sdb8    //从sdb7上移动数据到sdb8
# vgreduce vg0 /dev/sdb7      //将sdb7移出vg0卷组


LVM数据迁移

第一台机器
# umount /lv0
# vgchange -a n  关闭卷组
# vgexport vg0   卷组导出

第二台机器
# vgimport vg0   卷组导入
# vgchange -a y  打开卷组
# mount /dev/vg0/lv0 /lv0




# lvcreate -s /dev/vg0/lv0 -n lv0.bak -L 10M   快照
# rm -rf /lv0/*
  数据恢复
# mount /dev/vg0/lv0.bak /opt       
# cd /opt
# cp a.txt b.txt c.txt /lv0



# /etc/init.d/atd status
# /etc/init.d/crond status
# yum -y install at* crontab*



加大SWAP分区
     【第1种】添加新硬盘
      1.fdisk -l  查看新加入硬盘
      2.fdisk  /dev/sdb   
       分一个区后,按t——按l——输入82——回车——按p——按w
      3.partprobe 不重启系统添加新的磁盘分区
      4.mkswap  /dev/sdb1  专用格式化swap分区命令
      5.free -m  查看swap分区大小(以M为单位)
      7.swapon  /dev/sdb1  临时挂载swap分区,增加到swap分区
      8.free -m  在查看swap分区变大了
      8.vi  /etc/fstab   永久挂载
          /dev/sdb1    swap   swap   defaults   0 0
      9.mount  -a  重新加载/etc/fstab文件
      卸载新加的swap分区
      1.swapoff  /dev/sdb1  卸载新swap分区
      2.vi  /etc/fstab  删除添加的内容
      3.mount  -a  重新加载/etc/fstab文件
     【第2种】如果没有剩余磁盘,从本身硬盘创建swap文件
      1.free -m 或free    查看swap分区大小和内存大小(加上m是以M为单位,不加则以字节为单位)
      2.cd  /mnt    切换到/mnt下创建一个块设备文件
      3.dd  if=/dev/zero  of=swap  bs=10M  count=100  创建一个大小为100M的swap文件
        格式:dd  if=/dev/zero  of=指定文件名  bs=指定大小(以M为单位)  count=指定大小
        注意:bs值乘以count值=实际值
      4.mkswap  swap     mkswap是专用格式化swap文件的命令
      5.swapon  swap    临时挂载swap文件
      6.free -m 查看swap分区大小变大了,但重启机器就还原了
      7.vi /etc/fstab   永久挂载swap
        /mnt/swap    swap    swap  defaults  0 0
      8.mount  -a  重新加载/etc/fstab文件
      卸载swap文件
      1.swapoff  /mnt/swap 卸载swap文件
      2.vi  /etc/fstab  删除添加的内容
      3.mount  -a   重新加载/etc/fstab文件
      4.rm  -rf  /mnt/swap
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT灵魂摆渡者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值