大数据兼云计算(王明龙)讲师-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.组做磁盘配额

扫描二维码关注公众号,回复: 2633173 查看本文章

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(分区5、6、7、8、9都为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玩

  1. mdadm /dev/md0 -f /dev/sdb5 模拟其中一个损坏,md0是raid0的设备
    mdadm: set device faulty failed for /dev/sdb5: Device or resource busy
    这种是正常,因为raid0不提错容错,不提供冗余
  2. mdadm /dev/md1 -f /dev/sdb7 模拟其中一个损坏,md1是raid1的设备,可以提供冗余和容错
    mdadm: set /dev/sdb7 faulty in /dev/md1 //这样的提示表示正常
  3. mdadm -D /dev/md10 查看RAID设备信息
  4. mdadm /dev/md1 -r /dev/sdb7 -a /dev/sdb9 移除损坏磁盘,同时在加入一块磁盘
    mdadm: hot removed /dev/sdb7 from /dev/md1 //下面两行都是提示
    mdadm: added /dev/sdb9
  5. mdadm -G -n9 /dev/md1 –force 让增加的设备进入工作状态
  6. mdadm -D /dev/md10 查看RAID设备信息
  7. 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

猜你喜欢

转载自blog.csdn.net/wangminglong1989/article/details/81367222
今日推荐