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

(0)
上一篇 2016-09-05 08:48
下一篇 2016-09-05 08:48

相关推荐

  • 集中练习2

    用户管理、文本处理、文件管理相关

    2017-09-20
  • bash脚本编程之算术运算和文件查找

    算数运算在每个编程语言里面是最基本的功能,在bash里面也是.相对于其他编程语言来说在bash里面不能直接以变量加上变量的形式来表现;比如我们先声明两个变量num1和num2然后再做运算。 num1=2 num2=3 echo "$num1+$num2" 2+3 这里我们显示的结果直接为2+3只是做了变量的替换,而不是做两个变量…

    Linux干货 2016-12-23
  • 马哥教育网络班22期第二周课程练习1-未闻花名

    1、Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touch 创建文件 mv 移动文件 rm 删除文件 rmdir 删除目录 1.1 pwd命令 该命令的英文解释为print working directory(打…

    Linux干货 2016-08-22
  • LVM逻辑卷管理

    一、简述 什么是逻辑卷?LVM(Logical Volume Manager)利用Linux内核device-mapper实现存储系统的虚拟化。通过LVM,把底层存储硬件抽象化成存储逻辑块,再将这些逻辑块集合构成存储池,从存储池空间划分分区,可以简单地扩大或缩小分区,而不用担心硬盘没有足够的连续空间。 使用逻辑卷分区有什么用?使用逻辑卷分区重点在于可以弹性地…

    Linux干货 2016-09-06
  • Linux下history命令的介绍

    Linux下history命令的介绍 一、用处 对于Linux而言,命令是人机交互的重要方式,而查看命令历史可以帮助我们了解系统的使用状态、增强安全性也可以调用历史达到快捷操作的目的。 二、命令行历史   执行过的命令会被存入缓存,当正常退出shell时,缓存中的命令会被写入文件中并保存在用户下的隐藏文件文件.bash_history中。当用户登陆…

    Linux干货 2016-07-29
  • 计算机组成、服务器类型及几个简单的小命令

    计算机是1946年冯诺依曼提出的,被称为冯诺依曼体系: 计算机的组成 1 运算设备 2 控制设备 3 储存设备 4 输入设备 5 输出设备 服务器类型 1 塔式服务器 2 机架式服务器 3 刀片式服务器 服务器系统分为三大类 1 Windows 2 Linux 3 Uinx 命令 #ls           …

    Linux干货 2017-07-13