存储管理(3)
分类:linux基础 热度:

存储管理(3)
 
RAID:廉价磁盘冗余阵列
作 用:容错、提升读写速率
========================================================
 
RAID类型                                    个数                 利用率                        优缺点
------------------------------------------------------------------------ 
RAID0   条带集                         2+                   100%                  读写速率快,不容错 
RAID1   镜像集                                   2         50%                读写速率一般,容错
RAID5   带奇偶校验条带集                           3+                 (n-1)/n                   读写速率快,容错,允许坏一块
RAID6   带奇偶校验条带集双校验                               4+                 (n-2)/n                   读写快,容错,允许坏两块
RAID01
RAID10 RAID1的安全+RAID0的高速    4    50%                                读写速率快,容错
RAID50 RAID5的安全+RAID0的高速    6    (n-2)/n        读写速率快,容错
RAID60 RAID6的安全+RAID0的高速    8    (n-4)/n        读写速率快,容错
------------------------------------------------------------------------
刀片     两块盘 raid1
服务器   四块盘 raid5+一块热备
存储     raid5或者raid6(存储要做多个raid,不要把所有空间做成一个raid)
一、不同场景RAID的使用
RAID 实现方式
硬RAID: 需要RAID卡,有自己的CPU,处理速度快
软RAID: 通过操作系统实现,比如Windows、Linux
 
二、RAID5 (3块硬盘) + 热备(1块硬盘)
1. 准备4块硬盘
[root@yunwei  ~]# ll /dev/sd*
brw-rw---- 1 root disk 8,  48 Jan 13 16:07 /dev/sdd
brw-rw---- 1 root disk 8,  64 Jan 13 16:07 /dev/sde
brw-rw---- 1 root disk 8,  80 Jan 13 16:07 /dev/sdf
brw-rw---- 1 root disk 8,  80 Jan 13 16:07 /dev/sdg
   
2. 创建RAID
[root@yunwei  ~]# yum -y install mdadm   //确保mdadm命令可用
[root@yunwei  ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}
mdadm: array /dev/md0 started.
-C 创建RAID
/dev/md0 第一个RAID设备
-l5 RAID5 
-n RAID成员的数量
-x 热备磁盘的数量
-a                    加设备为热备 
-G                    热备变成员
开机生效:
[root@yunwei  ~]# mdadm -D -s > /etc/mdadm.conf
 
3. 格式化,挂载
[root@yunwei  ~]# mkfs.ext4 /dev/md0
[root@yunwei  ~]# mkdir /mnt/raid5
[root@yunwei  ~]# mount /dev/md0 /mnt/raid5
[root@yunwei  ~]# cp -rf /etc /mnt/raid5/etc1
 
4. 查看RAID信息
[root@yunwei  ~]# mdadm -D /dev/md0     //-D 查看详细信息
/dev/md0:
        Version : 1.2
  Creation Time : Mon Jan 13 16:28:47 2014
     Raid Level : raid5
     Array Size : 2095104 (2046.34 MiB 2145.39 MB)
  Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
   Raid Devices : 3
  Total Devices : 4
    Persistence : Superblock is persistent
 
    Update Time : Mon Jan 13 16:34:51 2014
          State : clean 
 Active Devices : 3
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 1
 
         Layout : left-symmetric
     Chunk Size : 512K
    Number   Major   Minor   RaidDevice State
       0       8       48        0      active sync   /dev/sdd
       1       8       64        1      active sync   /dev/sde
       4       8       80        2      active sync   /dev/sdf
 
       3       8       96        -      spare   /dev/sdg
 
5. 模拟一块硬盘损坏,并移除
终端一:
[root@yunwei  ~]# watch -n 0.5 'mdadm -D /dev/md0'   //watch持续查看
终端二:
[root@yunwei  ~]# mdadm /dev/md0 -f /dev/sde -r /dev/sde  
//模拟坏了并移除  -f  --fail  -r  --remove
 
6.将修好的磁盘重新加入到已经存在的磁盘阵列中:
[root@node1 ~]# mdadm -G -n4 /dev/md0               //使用-G或者--grow 将-n(磁盘数量)多设置一个就好了!少设置一个是缩小容量
 
6. 设置RAID开机生效
[root@yunwei  ~]# mdadm -D -s
ARRAY /dev/md0 metadata=1.2 name=sxl1.com:0 UUID=c6761621:8878498f:f5be209e
[root@yunwei  ~]# mdadm -D -s > /etc/mdadm.conf
 
========================================================
mdadm选项:
-s  --scan
-S  --stop
-D  --detail
-C  --create
-f   --fail
-r   --remove
-n  --raid-devices=3
-x  --spare-devices=1
-l   --level=5
========================================================
 
磁盘配额 quota
 
作用: 限制用户或组对磁盘空间的使用,例如文件服务器,邮件服务器...
========================================================
 
一、 启用磁盘限额
1. 让文件系统支持配额
[root@yunwei  ~]# vim /etc/fstab 
/dev/vg01/lv_home       /home             ext4    defaults,usrquota,grpquota        1 2
[root@yunwei  ~]# mount -o remount /home/
[root@yunwei  ~]# mount
/dev/mapper/vg01-lv_home on /home type ext3 (rw,usrquota,grpquota)
 
mount /dev/sdx1 /disk/quota -o remount,usrquota,grpquota
 
2. 创建磁盘配额的数据库文件
注意: 建议停用SELinux:setenforce 0
[root@yunwei  ~]# quotacheck -cug /disk/quota
[root@yunwei  ~]# ll /home/aquota.*
-rw------- 1 root root 12288 09-09 23:06 /home/aquota.group
-rw------- 1 root root 11264 09-09 23:06 /home/aquota.user
//-a 所有分区(已支持配额)
//-c 创建
//-u 用户
//-g 组
//-m 针对根分区创建配额
 
3.启动磁盘配额
[root@yunwei  ~]# quotaon -ug /disk/quota   //启动所有分区的磁盘配额
|quotaoff   停用
 
 
二、日常管理
+++设置配额+++
方法一:edquota
[root@yunwei  ~]# edquota -u alice
Disk quotas for user alice (uid 500):
Filesystem                                  blocks    soft       hard     inodes     soft     hard
/dev/mapper/vg01-lv_home         16     8192     10240      4               0         8
 
blocks: 从磁盘的使用量限制,比如限制用户使用10M,单位是k
inodes: 从创建文件数限制,比如只能建立100个文件
soft:  软限制 block 8M
hard: 硬限制 block 10M
grace time: 宽限期,默认7天 # edquota -t
 
[root@yunwei  ~]# su - alice
[alice@yunwei  ~]$ pwd
/home/alice
[alice@yunwei  ~]$ dd if=/dev/zero of=file99 bs=1M count=6
6+0 records in
6+0 records out
6291456 bytes (6.3 MB) copied, 0.00549407 seconds, 1.1 GB/s
[alice@yunwei  ~]$ dd if=/dev/zero of=file99 bs=1M count=9
dm-2: warning, user block quota exceeded.
9+0 records in
9+0 records out
9437184 bytes (9.4 MB) copied, 0.0113783 seconds, 829 MB/s
[alice@yunwei  ~]$ dd if=/dev/zero of=file99 bs=1M count=11
dm-2: warning, user block quota exceeded.
dm-2: write failed, user block limit reached.
dd: 写入 “file99”: 超出磁盘限额
10+0 records in
9+0 records out
10440704 bytes (10 MB) copied, 0.0101768 seconds, 1.0 GB/s
 
[alice@yunwei  ~]$ quota //查看自己的配额情况
Disk quotas for user alice (uid 500): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/mapper/vg01-lv_home
                      10240*   8192   10240  6days   8*      0       8        
 
方法二: setquota
# setquota -u username block软限制 block硬限制 inode软限制 inode硬限制 挂载点
# setquota -u jack 80000 100000 15 20 /dev/sda2
# quota jack
 
方法三:复制
# edquota -p alice tom robin user1 user2 user3
将alice的配额方案复制给后面所有用户
 
 
+++查看配额+++
查看单个用户的配额: # quota jack
查看所有用户的配额: # repquota -a
                              # repquota -a
普通用户查看自己配额: $ quota
 
========================================================
扩展知识:针对组设置配额
 
准备工作:
1.服务器关防火墙,关SELINUX
#service iptables stop
#setenforce 0
 
1.架设一个FTP服务
#yum install vsftpd* -y              #安装FTP
#vim /etc/vsftpd/vsftpd.conf
   anonymous_enable=NO
#service vsftpd start|restart|stop
 
#service iptables stop   #关闭防火墙
 
2.创建一个用户test   配额项:空间:200M 硬限:250M(作为模板用户),同时创建2用户(albert、lucy配额使用test模板)
 
3.FTP使用本地用户登录密码初始为123
#echo "123" |passwd albert --stdin      #取消交互设置密码
 
4.用户只能登录自己主目录并且受配额影响(用户之间不能互相登录),RH组共用一个HR目录
 
5.HR组内的成员只能删除自己上传的文件
 
-------------------------------------------------------------------------------------------------
目录及磁盘结构:
mount  /dev/sdh1    /disk/sdh1
#fdisk /dev/sdh
 
用户主目录:/disk/sdh1/user/用户名
组的主目录: /disk/sdh1/group/组的公共目录
 
---------------------------------------------------------------------------------------
一、让分区(设备(dev目录普通设备|RAID)、LV)支持配额属性
    
二、创建数据库文件
    quotacheck -cug  挂载点
    
三、启动配额
    quotaon  -ug  挂载点
    
四、设置配额
 
五、查看配额
 
文件的查找
========================================================
一、命令文件 
which ls  (echo $PATH)
 
二、任意文件
A.  locate   (查询的数据库: /var/lib/mlocate/mlocate.db)       计划任务:每天自动更新数据库
    手动更新数据库: updatedb
B.  find 
find [options] [path...] [expression]
 
按文件名:
[root@yunwei  ~]# find /etc -name "ifcfg-eth0"
[root@yunwei  ~]# find /etc -iname "ifcfg-eth0" //-i忽略大小写
[root@yunwei  ~]# find /etc -iname "ifcfg-eth*"
 
按文件大小:
[root@yunwei  ~]# find /etc -size +5M //大于5M
[root@yunwei  ~]# find /etc -size 5M
[root@yunwei  ~]# find /etc -size -5M
[root@yunwei  ~]# find /etc -size +5M -ls //-ls找到的处理动作
 
指定查找的目录深度:
-maxdepth levels
[root@yunwei  ~]# find / -maxdepth 3 -a  -name "ifcfg-eth0"
 
按时间找(atime,mtime,ctime):
[root@yunwei  ~]# find /etc -mtime +5 //修改时间超过5天
[root@yunwei  ~]# find /etc -mtime 5 //修改时间等于5天
[root@yunwei  ~]# find /etc -mtime -5 //修改时间5天以内
 
按文件属主、属组找:
[root@yunwei  ~]# find /home -user jack //属主是jack的文件
[root@yunwei  ~]# find /home -group hr //属组是hr组的文件
[root@yunwei  ~]# find /home -user jack -group hr
[root@yunwei  ~]# find /home -user jack -a -group hr
[root@yunwei  ~]# find /home -user jack -o -group hr
[root@yunwei  ~]# find /home -nouser
[root@yunwei  ~]# find /home -nogroup
[root@yunwei  ~]# find /home -nouser -o -nogroup //查找无主文件
 
按文件类型:
[root@yunwei  ~]# find /dev -type f //f普通
[root@yunwei  ~]# find /dev -type d //d目录
[root@yunwei  ~]# find /dev -type l //l链接
[root@yunwei  ~]# find /dev -type b //b块设备
[root@yunwei  ~]# find /dev -type c //c字符设备
[root@yunwei  ~]# find /dev -type s //s套接字
[root@yunwei  ~]# find /dev -type p //p管道文件
 
根据inode查找:-inum n 
[root@yunwei  ~]# find / -inum 31064284           
 
按文件权限:带“-”代表查找大于等于规定权限的文件,000为不关心,比如4000,只是查找有sgid的文件,其他权限不关心
[root@yunwei  ~]# find . -perm 644 -ls                  //不带“-”是指必须满足规定权限
[root@yunwei  ~]# find . -perm -644 -ls
[root@yunwei  ~]# find . -perm -600 -ls
[root@yunwei  ~]# find /sbin -perm -4000 -ls //包含set uid
[root@yunwei  ~]# find /sbin -perm -2000 -ls //包含set gid
[root@yunwei  ~]# find /sbin -perm -1000 -ls //包含sticky
 
找到后处理的动作:
-print
-ls
-delete
-exec
-ok
ok和exec都可以在后面跟一个操作命令
[root@yunwei  ~]# find /etc -name "ifcfg*" -print
[root@yunwei  ~]# find /etc -name "ifcfg*" -ls
[root@yunwei  ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \;
[root@yunwei  ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \;
 
[root@yunwei  ~]# find /etc -name "ifcfg*" -exec rm -rf {} \;(\后面还可以跟+,“;”代表对找到的文件逐一处理,“+”表示一起处理,但是+不是每个命令都能使用,所以一般用“;”)
[root@yunwei  ~]# find /etc -name "ifcfg*" -delete
 
扩展知识:find结合xargs
[root@yunwei  ~]# find . -name "yang*.txt" |xargs rm -rf
[root@yunwei  ~]# find /etc -name "ifcfg-eth0" |xargs -I {} cp -rf {} /var/tmp
 
{}只是一个字符串,代表前面收到的内容,只要保证两个命令后面的{}一致就可以了,也可以用其他字符串,但要保证一致
 
find作业:
1. 将/etc/中的所有目录(仅目录)复制到/tmp下,目录结构不变
[root@node1 ~]# find /etc/ -type d | xargs -I {} mkdir -p /tmp/{}
 
2. 将/etc目录复制到/var/tmp/,
    将/var/tmp/etc中的所有目录设置权限777(仅目录)
    将/var/tmp/etc中所有文件权限设置为666
 
文件打包及压缩
========================================================
 
Demo: 复制未打包的文件到远程主机
[root@yunwei  ~]# du -sh /etc
39M    /etc
[root@yunwei  ~]# rsync -va /etc/ 192.168.5.32:/tmp //将/etc下的所有文件...
[root@yunwei  ~]# rsync -va /etc 192.168.5.32:/tmp //将/etc目录...
 
 
方法一:
==打包
[root@yunwei  ~]# tar -cf etc1.tar /etc //c创建 v详细 f打包后文件名
[root@yunwei  ~]# tar -cf etc2.tar /etc
[root@yunwei  ~]# tar -cf etc3.tar /etc
[root@yunwei  ~]# ll -h etc*
-rw-r--r-- 1 root root 38M 09-02 07:13 etc1.tar
-rw-r--r-- 1 root root 38M 09-02 07:14 etc2.tar
-rw-r--r-- 1 root root 38M 09-02 07:15 etc3.tar
 
==压缩
[root@yunwei  ~]# gzip etc1.tar
[root@yunwei  ~]# bzip2 etc2.tar 
[root@yunwei  ~]# xz etc3.tar              //上面的两个软加压缩的文档在windows上面需要wimrar就能解压,而xz压缩的东西需要7zip才能解压
[root@yunwei  ~]# ll -h etc*
-rw-r--r-- 1 root root  9.3M 09-02 07:13 etc1.tar.gz
-rw-r--r-- 1 root root 8.0M 09-02 07:14 etc2.tar.bz2
-rw-r--r-- 1 root root 5.1M 09-02 07:15 etc3.tar.xz
 
==解压
[root@yunwei  ~]# gzip -d etc1.tar.gz
[root@yunwei  ~]# bzip2 -d etc2.tar.bz2
[root@yunwei  ~]# xz -d etc3.tar.xz
 
==解包
[root@yunwei  ~]# tar -xvf etc1.tar //解包到当前目录
[root@yunwei  ~]# tar -xf etc2.tar -C /var/tmp/ //-C重定向到/var/tmp目录
 
========================================================
方法二:
===打包,压缩===
[root@yunwei  ~]# tar -czf etc1.tar.gz /etc //-z 调用gzip
[root@yunwei  ~]# tar -cjf etc2.tar.bz2 /etc //-j 调用bzip2
[root@yunwei  ~]# tar -cJf etc3.tar.bz2 /etc //-J 调用xz
 
===解包,解压===
[root@yunwei  ~]# tar -xzvf etc1.tar.gz
[root@yunwei  ~]# tar -xvf etc1.tar.gz //无需指定解压工具,tar会自动判断
[root@yunwei  ~]# tar -xvf etc2.tar.bz2  -C /tmp
[root@yunwei  ~]# tar xf etc1.tar.gz
=======================================================
 
==解压zip
[root@yunwei  ~]# unzip oracle.zip
 
上一篇:存储管理(2) 下一篇:cron 计划任务 子系统
猜你喜欢
各种观点
热门排行
精彩图文