class15磁盘管理(二) 高级磁盘管理(一)

挂载点和/etc/fstab

配置文件系统体系
被mount、fsck和其它程序使用
系统重启时保留文件系统体系
可以在设备栏使用文件系统卷标
使用mount -a命令挂载  /etc/fstab 中的所有文件系统

文件挂载配置文件

/etc/fstab每行定义一个要挂载的文件系统;
    (1)要挂载的设备或伪文件系统(除根以外的文件系统)
    (2)挂载点
    (3)文件系统类型
    (4)挂载选项
    (5)转储频率
    (6)自检次序 
    
要挂载的设备或伪文件系统:
    设备文件、LABEL(LABEL="") 
    UUID(UUID="")、伪文件系统名称(proc,sysfs)
挂载选项: defaults
转储频率:  0 :不做备份           1 :每天转储           2 :每隔一天转储
           
自检次序:  0 :不自检           1:首先自检;一般只有rootfs才用1
           非0自检
LABEL="SDB1" /mnt/sdb1 ext4 defaults 0 3/testdir/centos7.iso /mnt/iso iso9660 loop 0 0/boot /mnt/boot none blind  0 010.1.1.1:/share /mnt/nfs nfs defaults 0 0

故障排除,/etc/fstab 设备名出错 自检非0

开机自检--》输入管理员密码--》进行修复mount -o remount,rw /

处理交换文件和分区

交换分区是系统RAM的补充
基本设置包括:
    • 创建交换分区或者文件 
     mkswap device 
     -L LABEL:指明卷标     -f :强制

挂载交换分区

启用:swapon
   swapon [OPTION]... [DEVICE]
    -a:激活所有的交换分区;    -s:查看swap分区的信息    -p PRIORITY :指定优先级    /etc/fstab:  pri=value
    禁用:swapoff [OPTION]... [DEVICE]
/etc/fstab          
    /testdir/swapfile swap swap  default,pri=100  0 0

SWAP的优先级

用户可以给某个swap 指定一个0 到32767的优先级,系统默认为-1
default,pri=#   设定优先级
优化性能:分布存放,高性能磁盘存放

移动介质

挂载意味着使外来的文件系统看起来如同是主目录树的一部分
按照默认设置,非根用户只能挂载某些设备(光盘、DVD 、软盘、USB 等等)
挂载点通常在/media或/mnt下

使用光盘

在图形环境下自动启动挂载/run/media/<user>/<label>
              
否则就必须被手工挂载
   mount /dev/cdrom /mnt/
         /dev/dvd
符号链接文件:      /dev/cdrom      /dev/cdrw      /dev/dvd      /dev/dvdrw
      
eject 命令卸载或弹出磁盘
           
创建ISO文件
      
    cp /dev/cdrom /root/centos7.iso
    mkisofs -r -o /root/etc.iso /etc
    mount -o loop /tmp/CentOS-7.0-1406-x86_64-DVD.iso /data/centos_dvd
    
刻录光盘
        
    wodim –v –eject centos.iso

挂载文件

dd if=/dev/zero of=/mnt/lopp1 bs=100M count=5
losteup   /dev/loop10  /mnt/loop1
     losetup -d /dev/loop#  取消loop设备的关联
mkfs.xfs /dev/loop10  
   mkdir /media/loop10
   mount /dev/loop10  /media/loop10

挂载USB介质

被内核探测为SCSI 设备
   • /dev/sdaX 、/dev/sdbX 、或类似的设备文件
   •  手动挂载
   • mount /dev/sdb1 /mnt
   
 #sync 同步

常见工具

内存空间使用状态:
free [OPTION]
    -m:  以MB 为单位    -g:  以GB 为单位
文件系统空间占用等信息的查看工具:
df [OPTION]... [FILE]...
    -H  以1000 为单位    -T  文件系统类型    -h: human-readable    -i :inodes instead of blocks    -P:  以Posix 兼容的格式输出
查看某目录总体空间占用状态:
du [OPTION]... DIR
    -h: human-readable    -s: summary  总体显示
[root@6 testdir]# du -h
        32K	./yum.repos.d        32K	./repo/repodata        76K	./repo        8.0K	./a        604K	.
        [root@6 testdir]# du -s
        604	.

工具dd

dd 命令:convert and copy a file
用法:
dd if =/PATH/FROM/SRC of=/PATH/TO/DEST
    bs=# :block size,  复制单元大小    count=# :复制多少个bs
    
    
of=file 写到所命名的文件而不是到标准输出    if=file 从所命名文件读取而不是从标准输入
    bs=size 指定块大小(既是是ibs 也是obs)
    ibs=size 一次读size 个byte
    obs=size 一次写size 个byte
    cbs=size 一次转化size 个byte
    skip=blocks 从开头忽略blocks个ibs大小的块
    seek=blocks 从开头忽略blocks个obs大小的块    count=n 只拷贝n个记录


conv=conversion[,conversion...]  用指定的参数转换文件。
转换参数:
ascii 转换 EBCDIC 为  ASCIIebcdic 转换 ASCII 为  EBCDIC
block  转换为长度为 cbs  的记录,不足部分用空格填充。
unblock 替代cbs 长度的每一行尾的空格为新行
lcase  把大写字符转换为小写字符
ucase  把小写字符转换为大写字符
swab  交换输入的每对字节。
noerror  出错时不停止
notrunc  不截短输出文件。
sync  把每个输入块填充到ibs 个字节,不足部分用空(NUL) 字符补齐
磁盘拷贝:
dd if=/dev/sda of=/dev/sdb备份MBR:
    dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
    破坏MBR中的bootloader:
     dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
有二进制文件 fileA,size>2K 。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB,  想把上面读取到的128Bytes 写到第32 个字节开始的位置,替换128Bytes ,请问如何实现?        #dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31
        conv=notrunc
备份:
dd if=/dev/sdx of=/dev/sdy
    将本地的/dev/sdx 整盘备份到/dev/sdy
    
    dd if=/dev/sdx of=/path/to/image
    将/dev/sdx 全盘数据备份到指定路径的image 文件
    
    dd if=/dev/sdx | gzip >/path/to/image.gz
    备份/dev/sdx 全盘数据,并利用gzip 工具进行压缩,保存到指定路径
恢复:
dd if=/path/to/image of=/dev/sdx
将备份文件恢复到指定盘
          
gzip -dc /path/to/image.gz | dd of=/dev/sdx将压缩的备份文件恢复到指定盘
拷贝内存资料到硬盘
dd if=/dev/mem of=/root/mem.bin bs=1024将内存里的数据拷贝到root 目录下的mem.bin 文件
            
从光盘拷贝iso镜像dd if=/dev/cdrom of=/root/cd.iso拷贝光盘数据到root 文件夹下,并保存为cd.iso 文件
                
销毁磁盘数据 
dd if=/dev/urandom of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行。
                 
得到最恰当的block size    dd if=/dev/zero bs=1024 count=1000000
    of=/root/1Gb.file
    dd if=/dev/zero bs=2048 count=500000
    of=/root/1Gb.file
    dd if=/dev/zero bs=4096 count=250000
    of=/root/1Gb.file
    dd if=/dev/zero bs=8192 count=125000
    of=/root/1Gb.file通过比较dd指令输出中所显示的命令执行时间,即可确定系统
最佳的block size 大小
测试硬盘读写速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/nulldd if=/dev/zero of=/root/1Gb.file bs=1024count=1000000通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度
修复硬盘
dd if=/dev/sda of=/dev/sda当硬盘较长时间(比如1 ,2 年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。

配置配额系统

综述
•  在内核中执行
•  以文件系统为单位启用
•  对不同组或者用户的策略不同
   根据块或者节点进行限制
    •  执行软限制(soft limit)
    •  硬限制(hard limit)
初始化
•  分区挂载选项:usrquota 、grpquota
/dev/sda6   /home   ext4    usrquota,grpquota 0 0
•  初始化数据库:quotacheck
   -u, --user
   -g, --group
   -c, --create-files
quotacheck -cug /home 
setenforce 0   centos6 停用防火墙

为用户设定配额

执行
•  开启或者取消配额:quotaon 、quotaoff
   -p, --print-state
quotaon -p /home
quotaon /home
•  直接编辑配额:edquota username
•  在shell 中直接编辑:
setquota usename 4096 5120 40 50 /foo
•  定义原始标准用户
edquota -p user1 user2

报告配额状态

报告
•  用户调查:quota
•  配额概述:repquota
•  其它工具:warnquota

what is RAID

RAID:Redundant Arrays of Inexpensive( Independent) Disks          
1988 年由加利福尼亚大学伯克利分校
   
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供

RAID

提高IO 能力:
    磁盘并行读写
提高耐用性;
    磁盘冗余来实现
级别:多块磁盘组织在一起的工作方式有所不同RAID 实现的方式:外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID :主板集成RAID 控制器
   安装OS 前在BIOS 里配置Software RAID:

RAID 级别

RAID-0 :条带卷,strip
RAID-1:  镜像卷,mirror
RAID-2
 ..
RAID-5RAID-6RAID-10RAID-01
RAID 普通型级别
RAID-0:
    读、写性能提升;
    可用空间:N*min(S1,S2,...)
    无容错能力
    最少磁盘数:2, 2+
    
RAID-1: 
    读性能提升、写性能略有下降
    可用空间:1*min(S1,S2,...)
    有冗余能力
    最少磁盘数:2, 2N
    
RAID-4:
    多块(至少三块)数据盘异或运算值,存于专用校验盘


RAID-5: 
    读、写性能提升
    可用空间:(N-1)*min(S1,S2,...)
    有容错能力:允许最多1 块磁盘损坏
    最少磁盘数:3, 3+
        
RAID-6: 
    读、写性能提升
    可用空间:(N-2)*min(S1,S2,...)
    有容错能力:允许最多2 块磁盘损坏
    最少磁盘数:4, 4+
RAID 混合类型级别
RAID-10:
读、写性能提升
可用空间:N*min(S1,S2,...)/2有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+
         
RAID-01 、RAID-50
         RAID7:  可以理解为一个独立存储计算机,自身带有操作系
统和管理工具,可以独立运行,理论上性能最高的RAID 模式
      
JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用 
可用空间:sum(S1,S2,...)
              常用级别:
RAID-0, 
RAID-1, 
RAID-5, 
RAID-10,
RAID-50, 
JBOD

软RAID

mdadm :为软RAID 提供管理界面
为空余磁盘添加冗余
结合内核中的md(multi devices)
RAID 设备可命名为/dev/md0 、/dev/md1 、/dev/md2、 、/dev/md3 等等

软件RAID 的实现

mdadm :模式化的工具
命令的语法格式:mdadm [mode] <raiddevice> [options]  <component-devices>
支持的RAID 级别:
    LINEAR, 
    RAID0, 
    RAID1, 
    RAID4,
    RAID5, 
    RAID6, 
    RAID10
模式:
创建:-C
    装配: -A
    监控: -F
    管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备


-C:  创建模式-n #:  使用# 个块设备来创建此RAID;-l # :指明要创建的RAID 的级别;-a {yes|no} :自动创建目标RAID 设备的设备文件;-c CHUNK_SIZE: 指明块大小;-x #: 指明空闲盘的个数;       -D :显示raid 的详细信息;    mdadm -D /dev/md#
管理模式:
-f:  标记指定磁盘为损坏    -a:  添加磁盘    -r:  移除磁盘
观察md 的状态:
cat /proc/mdstat
   
    watch命令:
          -n #:刷新间隔,单位为秒;
停止md设备:
mdadm -S /dev/md#

软RAID 配置实例

使用mdadm 创建并定义RAID 设备 # mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda{1,2,3,4}
 
 # mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
用文件系统对每个RAID 设备进行格式化#mke2fs -j /dev/md0
          测试RAID 设备
mdadm 允许检查RAID 设备的状况  #mdadm --detail|D /dev/md0增加新的成员# mdadm –G /dev/md0 –n4 -a /dev/sdf1

软RAID测试和修复

模拟磁盘故障
#mdadm /dev/md0 -f /dev/sda1
移除磁盘
#mdadm /dev/md0 –r /dev/sda1
从软件RAID 磁盘修复磁盘故障
• 替换出故障的磁盘然后开机
• 在备用驱动器上重建分区
• #mdadm /dev/md0 -a /dev/sda1
mdadm 、/proc/mdstat 及系统日志信息
#watch -n1 'cat /proc/mdstat'每1秒查看mdstat文件一次

软RAID 管理

生成配置文件:mdadm –D –s >> /etc/mdadm.conf
           
停服务:mdadm –S /dev/md0
激活:mdadm –A –s /dev/md0 激活
删除raid 信息:mdadm –zero-superblock /dev/sdb1

逻辑卷管理器(LVM)

允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
         
允许在多个物理设备间重新组织文件系统
    •  将设备指定为物理卷
    •  用一个或者多个物理卷来创建一个卷组
    •  物理卷是用固定大小的物理区域(Physical Extent, PE )来定义的
    •  在物理卷上创建的逻辑卷
    是由物理区域(PE )组成
    •  可以在逻辑卷上创建文件系统

LVM 介绍

LVM: Logical Volume Manager, Version: 2dm: device mapper: 将一个或多个底层块设备组织成一个逻辑设备的模块
设备名:/dev/dm-#
软链接:
    /dev/mapper/VG_NAME-LV_NAME
    /dev/mapper/vol0-root
    /dev/VG_NAME/LV_NAME
    /dev/vol0/root

LVM 更改文件系统的容量

LVM 可以弹性的更改LVM的容量通过 交换PE来进行资料的转换,将原来LV 内的PE转转移到其他的设备中以降低LV的容量,或将其他设备中的PE 加到LV 中以加大容量

pv 管理工具

显示pv 信息
pvs :简要pv 信息显示
 pvdisplay
创建pv
pvcreate /dev/DEVICE
删除
pvremove /dev/DEVICE

vg 管理工具

显示卷组
vgsvgdisplay
创建卷组
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgcreate -s 4G myvg /dev/sdd1
管理卷组
vgextend VolumeGroupName PhysicalDevicePath[PhysicalDevicePath...]
#vgextend myvg   /dev/sdd5
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
#vgreduece myvg /dev/sdd5
删除卷组
vgremove先做pvmove ,再做vgremove

lv 管理工具

显示逻辑卷
lvs
    Lvdisplay
创建逻辑卷
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
重设文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]    
    xfs_growfs /mnt/mylv  
    
    lvextend -r -l +100%FREE /dev/vg0/mylv
    剩余全部扩充

扩展和缩减逻辑卷

扩展逻辑卷:
# lvextend -L [+]#[mMgGtT]
    /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME
缩减逻辑卷:
# umount /dev/VG_NAME/LV_NAME# e2fsck -f /dev/VG_NAME/LV_NAME# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]# lvreduce -L [-]#[mMgGtT]/dev/VG_NAME/LV_NAME# mount

创建逻辑卷实例

创建物理卷
pvcreate /dev/sda3
为卷组分配物理卷
vgcreate vg0 /dev/sda3
从卷组创建逻辑卷
lvcreate -L 256M -n data vg0mke2fs -j /dev/vg0/datamount /dev/vg0/data /mnt/data

积累应用

1:创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

[root@6 ~]#  gdisk /dev/sdd

class15磁盘管理(二) 高级磁盘管理(一)2016-9-2 05.JPG

[root@6 ~]# mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/sdd{1,2,3}

class15磁盘管理(二) 高级磁盘管理(一)2016-9-2 01.JPG

[root@6 ~]# mkfs.ext4 /dev/md0

class15磁盘管理(二) 高级磁盘管理(一)2016-9-2 02.JPG

[root@6 ~]# vim /etc/fstab

UUID="5dd32775-a40a-4bf0-94f9-da7907be55f1" /backup   ext4  defaults 0 0

class15磁盘管理(二) 高级磁盘管理(一)2016-9-2 03.JPG

[root@6 ~]# mount -a

class15磁盘管理(二) 高级磁盘管理(一)2016-9-2 04.JPG

2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录

[root@lvasu bin2]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -c 256 /dev/sdd{1,2,3}

class15磁盘管理(二) 高级磁盘管理(一)2016-9-3 -1.JPG

[root@lvasu bin2]# mkfs.ext4 /dev/md0

class15磁盘管理(二) 高级磁盘管理(一)2016-9-3 -2.JPG

vim /etc/fstab

class15磁盘管理(二) 高级磁盘管理(一)2016-9-3 -3.JPG

munt -a

class15磁盘管理(二) 高级磁盘管理(一)2016-9-3 -4.JPG

3、创建和扩展逻辑卷

[root@lvasu bin2]# pvcreate /dev/sdd{1,2,3}
 Physical volume "/dev/sdd1" successfully created
 Physical volume "/dev/sdd2" successfully created
 Physical volume "/dev/sdd3" successfully created
[root@lvasu bin2]# vgcreate vg0  /dev/sdd{1,2,3}
 Volume group "vg0" successfully created
[root@lvasu bin2]# vgs
 VG   #PV #LV #SN Attr   VSize VFree
 vg0    3   0   0 wz--n- 2.99g 2.99g
[root@lvasu bin2]# lvcreate -L 1G -n lv0 /dev/vg0
 Logical volume "lv0" created.
[root@lvasu bin2]# lvs
 LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 lv0  vg0  -wi-a----- 1.00g                                                    
[root@lvasu bin2]# lvextend -L 2G /dev/vg0/lv0
 Size of logical volume vg0/lv0 changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents).
 Logical volume lv0 successfully resized.
[root@lvasu bin2]# lvs
 LV   VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 lv0  vg0  -wi-a----- 2.00g

原创文章,作者:lvasu,如若转载,请注明出处:http://www.178linux.com/43130

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code