马哥博客作业六周

磁盘管理

 

1.磁盘分区
1.  两种分区方式:MBR,GPT    MBR 最大不能超过2T  GPT可以支持超过2T的大空间
2.  创建分区命令:
Fidsk   管理MBR分区   msdos
Gdisk   管理GPT分区
Parted  统称管理两种分区 ,但执行时会立即生效  慎用
Partprobe  可以刷新新加的硬盘 在系统中可以用lsblk查看  用于centos7.8

创建分区:使用MBR分区就用fidsk创建 使用GPT分区就用gdisk创建 parted可以对两个分区都可以创建
 parted /dev/sdb mklabel   gpt | msdos    指定分区的类型
parted /dev/sdb  print  列出分区表
parted /dev/sdb mkpart 指定区分的内存
  n创建分区   指定内存+4G或其他   添加编号 L可以查看可用编号  t是更改编号  w 保存退出  q不保存退出
parted /dev/sdb rm 1   可以用rm 删除指定分区 后边跟分区的编号
parted –l 列出所有硬盘分区信息
如增加新的分区后 分区是不同步的 用partx -a /dev/sda 同步分区表


创建文件系统   常见的文件系统 ext2 3 4  xfs  swap
2. mkfs -t ext4 /dev/sdb1   给sdb1添加ext4文件系统
-L设置卷标  -b指定块的大小  -N指定分区中创建多少个节点编号
-m默认5%,为管理人员预留空间占总空间的百分比
3.tune2fs  可以查看块设备属性信息
-l 查看指定文件系统的超级快信息
-L 修改卷标
-m 修改给管理员预留的空间百分比
-j ext2升级为ext3
4. dumpe2fs:显示ext文件系统信息,将磁盘块分组管理
-h查看超级块信息,不显示分组信息
5. xfs_info:显示示挂载或已挂载的 xfs 文件系统信息
6.文件的系统检测和修复   注意 一定不要在挂载状态下修复  fsck命令


分区的挂载 mount挂载  umount删除挂载
挂载点目录必须事先存在,建议使用空目录  可以用mkdir 常见一个空目录
mkdir /mut创建空目录  
mount /dev/sdb1 /mut  在挂载上去   lsblk –f可以查看挂载
-t vsftype 指定要挂载的设备上的文件系统类型
-r readonly,只读挂载
-w read and write, 读写挂载
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有
auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U 'UUID' 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上
-o options:(挂载文件系统的选项),多个选项使用逗号分隔
async 异步模式,内存更改时,写入缓存区buffer,过一段时间再写到磁盘中,效率高,但不安全
sync 同步模式,内存更改时,同时写磁盘,安全,但效率低下
atime/noatime 包含目录和文件
diratime/nodiratime 目录的访问时间戳
auto/noauto 是否支持开机自动挂载,是否支持-a选项
exec/noexec 是否支持将文件系统上运行应用程序
dev/nodev 是否支持在此文件系统上使用设备文件
suid/nosuid 是否支持suid和sgid权限
remount 重新挂载
ro/rw 只读、读写
user/nouser 是否允许普通用户挂载此设备,/etc/fstab使用
acl/noacl 启用此文件系统上的acl功能
loop 使用loop设备
_netdev 当网络可用时才对网络资源进行挂载,如:NFS文件系统
defaults 相当于rw, suid, dev, exec, auto, nouser, async

mount持久挂载
把文件写在 /etc/fstab 下    
每一个挂载的文件系统都有六项    
 UUID    
 设备名    
 文件系统类型(ext4  xfs)     
 挂载选项    defaults ,acl,bind   
 转储频率:0:不做备份 1:每天转储 2:每隔一天转储   
 fsck检查的文件系统的顺序:允许的数字是0 1 2
添加新的挂载用   用mount -a 才能生效


xfs-info    查看xfs已挂载的文件系统
losf 或fuser -v  查看正在访问文件系统的进程
fuser -km   终止正在访问的进程

首先需要创建一个分区在更改为swap
swap分区   用free -h  查看当前的swap分区情况    buffers是缓冲区    cache是缓存    在centos8和7上已经合并
buffers相当于文件从磁盘上读取文件出来的一个中间区  
cache相当于把文件网磁盘上存放的一个中间区
cat /etc/sys/vm/swappiness    查看内存使用到多少才会启动swap   有一个相应的数值会显示
给swap分配文件系统   mkswap /dev/sda     想要持久保存  写到文件中 /etc/fstab   
swapon -s 查看是有那个分区分配的swap空间      -a 保存到文件中后同问文件系统
禁用swap  用swapoff /dev/sda1     再用 -a  同步




df 命令   -h以二进制显示文件大小   -H以十进制显示文件大小   -T显示文件系统类型   -i显示文件的节点编号   -P对齐格式
du 命令显示文件目录的大小   -h 以K为单位显示   -s 显示总文件大小   
dd 命令  实现转换和文件的复制
格式:dd if=文件 of=/文件 bs=# count=#
if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
ibs=size 一次读size个byte
obs=size 一次写size个byte
bs=size block size, 指定块大小(既是是ibs也是obs)
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 复制n个bs
conv=conversion[,conversion...] 用指定的参数转换文件
conversion 转换参数:
ascii 转换 EBCDIC 为 ASCII
ebcdic 转换 ASCII 为 EBCDIC
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreat 不创建输出文件
noerror 出错时不停止
notrunc 不截短输出文件
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
fdatasync 写完成前,物理写入输出文件

范例:
[root@centos8 ~]#cat f1.txt;
abcdef
[root@centos8 ~]#cat f2.txt
123456789
[root@centos8 ~]#dd if=f1.txt of=f2.txt bs=1 count=2 skip=3 seek=4
2+0 records in
2+0 records out
2 bytes copied, 6.6515e-05 s, 30.1 kB/s
[root@centos8 ~]#cat f2.txt
1234de[root@centos8 ~]#echo 123456789 > f2.txt
[root@centos8 ~]#cat f2.txt
123456789
[root@centos8 ~]#cat f1.txt
abcdef
[root@centos8 ~]#cat f1.txt; cat f2.txt
abcdef
123456789
[root@centos8 ~]#dd if=f1.txt of=f2.txt bs=1 count=2 skip=3 seek=4 conv=notrunc
2+0 records in
2+0 records out
2 bytes copied, 7.6153e-05 s, 26.3 kB/s
[root@centos8 ~]#cat f2.txt
1234de789


范例:#备份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
#有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有
fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,实现如下
dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
#将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/dev/sdy
#将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx of=/path/to/image
#备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径
dd if=/dev/sdx | gzip >/path/to/image.gz
#将备份文件恢复到指定盘
dd if=/path/to/image of=/dev/sdx
#将压缩的备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx
#将内存里的数据拷贝到root目录下的mem.bin文件
dd if=/dev/mem of=/root/mem.bin bs=1024
#拷贝光盘数据到root文件夹下,并保存为cdrom.iso文件
dd if=/dev/cdrom of=/root/cdrom.iso
#销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1
#通过比较dd指令输出中命令的执行时间,即可确定系统最佳的block size大小
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/dev/zero of=/root/1Gb.file bs=2048 count=500000
dd if=/dev/zero of=/root/1Gb.file bs=4096 count=250000
#测试硬盘写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
#测试硬盘读速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null



RAID 把相同大小的磁盘以不同的方式组合在一起
常用的  RAID 0     RAID 1   RAID 5    RAID 6    RAID 10 
RAID 0    读写性能提升   把一个文件分为多块每一块存在一个硬盘中   
          容错性低  如果有一个硬盘损坏  文件就确实一部分  相当于损坏 无法访问  最少磁盘数2 2+

RAID 1    读性能提升 写性能略微下降     把一个文件存入磁盘中 另一个磁盘同步备份  利用率只能达到%50   
          损坏一块硬盘 但另外一块还能访问文件  最少磁盘磁盘数 2 2N    

RAID 4     多块硬盘组合  把文件存入第一个硬盘和第二硬盘中  第三个硬盘相当于第一和第二硬盘的总校验   
           如果有一个快硬盘损坏   可以用另外两块算出损坏的那一块硬盘     最少磁盘数 3

RAID 5     多块硬盘组合   把文件存入其中两块硬盘  第三块硬块是校验位  但总校验位这块硬盘是多块硬盘轮流担当    
           只允许有一块磁盘损坏   最少磁盘数 3 3+

RAID 6     多块硬盘组合   把文件存入其他硬盘    有两个校验位   每两个硬盘轮流担当    
           最多可允许损坏两块硬盘    最少磁盘数 4 4+

RAID 10    相当于多块RAID 1 组合成RAID 0   每组最多损坏一块   磁盘数最少4 4+

RAID 01    相当于多块RAID 0 组合成RAID 1   每组最多损坏一块   磁盘数最少4 4+




逻辑卷管理器  LVM           需要安装lvm2包
1.将物理磁盘整合成物理卷                        
2.把物理卷组合成卷组    卷组VG                 
3.把卷组在分成多个逻辑卷    逻辑卷LV            

1.pvcreate /dev/sdb  /dev/sdc1  同时对硬盘和分区创建物理卷       pvremove  删除物理卷        pvdisplay   显示目前存在的物理卷     pvs
2.Vgcreate vg_卷组名字 /dev/sdb /dev/sdc1      对两块空间创建卷组                           vgdisplay   显示目前存在的卷组     vgs
3.lvcreate -n lv_逻辑卷名字  -l是PE个数   -L以(多少M)分配个数    如有多个卷组指定卷组名     lvdisplay  显示目前存在的逻辑卷   lvs
4.创建文件系统  mkfs.ext4 /dev/卷组名/lv_逻辑卷名字
5.创建文件 挂载   mkdir....         在/etc/fstab 中写入   保存       mount -a  挂载生效
6.扩展逻辑卷大小   lvextend  -l  -L    后边跟逻辑卷名称      lvextend  -r   可以对不同的文件系统进行扩展
7.resize2fs    后边跟逻辑卷名称   同步新增加的空间       此命令只针对于ext系列文件系统
  xfs_growfs    后边跟挂载点名称   
8.如卷组空间没有剩余 需要从新从硬盘上分配空间
   再重新在物理磁盘上分配一个逻辑卷空间    fdisk...     8e是逻辑分区
   在对分配的硬盘进行创建物理卷
   vgextend   对卷组进行扩展      vgextend 卷组名    新增加的物理卷名




   
如果有一块硬盘坏掉 需要更换新的硬盘   需要先把硬盘上的逻辑卷挪到别的硬盘中的逻辑卷 可以使信息不丢失
pvmove /dev/sdb1   拆除那块硬盘 就挪走那块硬盘上的逻辑卷的信息    自动会吧当前逻辑卷的内容分配的别的硬盘的逻辑卷上
lvreduce 卷组名 /硬盘名称    把卷组从当前硬盘清除
pvremove /dev/sdb1   吧物理卷从磁盘上移除
gdisk dev/sdb   再把分区删除 就可以拔掉硬盘  换新的硬盘上去

 

posted @ 2020-04-26 16:37  柴大坤  阅读(142)  评论(0)    收藏  举报