移动设备和raid初步
1.使用光盘
手工挂载
mount /dev/cdrom /mnt/
操作光盘
eject #弹出光盘 eject -t #弹入光盘
创建ISO文件
cp /dev/cdrom /root/centos.iso mkisofs -r -o /root/etc.iso /etc #来自于genisoimage包
刻录光盘
wodim -v -eject centos.iso
2.文件系统空间实际真正占用等信息的查看工具 df
df [OPTION]... [FILE]...
常用选项
-H 以10为单位 -T 文件系统类型 -h human-readable -i inodes instead of blocks -P 以Posix兼容的格式输出
范例:
[root@centos8 ~]#df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 887M 0 887M 0% /dev tmpfs tmpfs 903M 0 903M 0% /dev/shm tmpfs tmpfs 903M 8.7M 894M 1% /run tmpfs tmpfs 903M 0 903M 0% /sys/fs/cgroup /dev/sda2 xfs 100G 2.7G 98G 3% / /dev/sda3 xfs 50G 1.4G 49G 3% /data /dev/sda1 ext4 976M 128M 781M 15% /boot tmpfs tmpfs 181M 0 181M 0% /run/user/0 [root@centos8 ~]#lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 ext4 5c2216e3-ae34-444e-aa60-83cbaebb47e7 /boot ├─sda2 xfs f7f53add-b184-4ddc-8d2c-5263b84d1e15 / ├─sda3 xfs 9a2293a8-9277-4b18-bae1-498e0b9da145 /data ├─sda4 ├─sda5 swap eebe3bc7-6d52-4ad9-86aa-916f1a123fd4 [SWAP] └─sda6 sdb └─sdb1 ext4 /data/mysql cb7cae1e-d227-4f64-872b-cd6cce20c911 sdc swap a3dc8863-b7a6-462b-a8e5-72d034a442de sr0 iso9660 CentOS-8-1-1911-x86_64-dvd 2020-01-03-21-42-40-00
范例:
[root@rhel5 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 99415464 2084776 92199220 3% / /dev/sda1 101086 12056 83811 13% /boot tmpfs 517536 0 517536 0% /dev/shm [root@rhel5 ~]# df -P Filesystem 1024-blocks Used Available Capacity Mounted on /dev/mapper/VolGroup00-LogVol00 99415464 2084776 92199220 3% / /dev/sda1 101086 12056 83811 13% /boot tmpfs
3.查看某目录总体空间实际占用状态 du
显示指定目录下面各个子目录的大小,单位为KB
du [OPTION]... DIR
常用选项
-h human-readable -s summary --max-depth=# 指定最大目录层级 -x, --one-file-system #忽略不在同一个文件系统的目录
范例:
[root@centos8 ~]#du -sh /* 0 /bin 116M /boot 4.0K /data 0 /dev 22M /etc 24K /home 0 /lib 0 /lib64 0 /media 0 /misc 0 /mnt 0 /net 12K /opt du: cannot access '/proc/1529/task/1529/fd/4': No such file or directory du: cannot access '/proc/1529/task/1529/fdinfo/4': No such file or directory du: cannot access '/proc/1529/fd/4': No such file or directory du: cannot access '/proc/1529/fdinfo/4': No such file or directory 0 /proc 197M /root
13M /run 0 /sbin 0 /srv 0 /sys 0 /tmp 1.7G /usr 138M /var
范例:
[root@centos8 ~]#du -h -x --max-depth=1 / 22M ./etc 197M ./root 138M ./var 1.7G ./usr 24K ./home 0 ./media 0 ./mnt 12K ./opt 0 ./srv 0 ./tmp 2.1G .
3.大厂面试题: df 和 du 区别,什么时候df >du 什么时候df < du
df:查看文件系统空间占用的大小
du:查看目录总体空间占用的大小
目录内挂载有其它分区时的情况 当删除文件但不释放空间时,有什么不同?(du 查看文件空间释放,df不释放)
4.工具 dd
dd 命令:convert and copy a file
格式:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST 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
5.1)什么是RAID
独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列 (Redundant Array of Inexpensive Disks),简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起 来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。
RAID 层级不同,数据会以多种模式分散于各个硬盘,RAID 层级的命名会以 RAID 开头并带数字,例 如:RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每种等级 都有其理论上的优缺点,不同的等级在两个目标间获取平衡,分别是增加数据可靠性以及增加存储器 (群)读写性能。
简单来说,RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。 RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID 功能更加有效地与主板集成,它也成为普通用户的一个选择,特别是需要大容量存储空间的工作,如: 视频与音频制作。
2)RAID功能实现
提高IO能力,磁盘并行读写
提高耐用性,磁盘冗余算法来实现
3)RAID实现的方式
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置
软件RAID:通过OS实现,比如:群晖的NAS