资讯专栏INFORMATION COLUMN

DD命令压测、备份与还原磁盘怎么操作

社区管理员 / 1348人阅读

一、DD命令介绍

Linux dd 命令用于读取、转换并输出数据。dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

参数说明:

  • if=文件名:输入文件名,默认为标准输入。即指定源文件。

  • of=文件名:输出文件名,默认为标准输出。即指定目的文件。

  • ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。

  • obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。

  • bs=bytes:同时设置读入/输出的块大小为bytes个字节。

  • cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。

  • skip=blocks:从输入文件开头跳过blocks个块后再开始复制。

  • seek=blocks:从输出文件开头跳过blocks个块后再开始复制。

  • count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

  • conv=<关键字>

convfdatasync系统决定何时写入data
fsync系统决定何时写入meta+data
flag(分为 iflag(读模式) 和 oflag(写模式))dsync每接收到一次 IO, 就写一次data
sync(跳过hdd缓存)每接收到一次 IO, 就写一次meta+data
direct(跳过内存缓存)绕过系统高速缓存, 系统决定落盘

1.1 /dev/zero

/dev/zero,是一个输入设备,可用它来初始化文件。该设备无穷尽地提供0,可以使用任何需要的数目,因此可以用来测试纯写速度

1.2 /dev/null

/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。可以用来测试纯读速度

二、磁盘读写测试

2.1 测试磁盘写能力

[root@10-60-24-95 ~]# time dd if=/dev/zero of=/data/testw.dbf bs=4k count=1000000
1000000+0 records in
1000000+0 records out
4096000000 bytes (4.1 GB) copied, 16.6643 s, 246 MB/s

real	0m16.691s
user	0m0.085s
sys	0m1.891s

2.2 测试磁盘的读能力

[root@10-60-24-95 ~]# time dd if=/dev/vdb of=/dev/null bs=4k count=100000
100000+0 records in
100000+0 records out
409600000 bytes (410 MB) copied, 2.53905 s, 161 MB/s

real	0m2.540s
user	0m0.008s
sys	0m0.159s

2.3 测试磁盘同时读写能力

[root@10-60-24-95 ~]# time dd if=/dev/vdb of=/testrw.dbf bs=4k count=100000
100000+0 records in
100000+0 records out
409600000 bytes (410 MB) copied, 4.69953 s, 87.2 MB/s

real	0m4.767s
user	0m0.011s
sys	0m0.397s

2.4 测试纯写入性能

[root@10-60-24-95 ~]# cd /data/
[root@10-60-24-95 data]# dd if=/dev/zero of=testw bs=8k count=10000 oflag=direct
10000+0 records in
10000+0 records out
81920000 bytes (82 MB) copied, 3.07226 s, 26.7 MB/s

2.5 测试纯读取性能

# 创造一个2G的可读文件
[root@10-60-24-95 data]# dd if=/dev/zero of=testr bs=10M count=200
200+0 records in
200+0 records out
2097152000 bytes (2.1 GB) copied, 2.88613 s, 727 MB/s

# 测试纯读速度
[root@10-60-24-95 data]# dd if=testr of=/dev/null bs=8k count=10000 iflag=direct
10000+0 records in
10000+0 records out
81920000 bytes (82 MB) copied, 3.07104 s, 26.7 MB/s

三、磁盘备份与恢复

3.1 备份整块磁盘

注:备份系统vda1到vdb磁盘。

[root@10-60-24-95 ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb    253:16   0  20G  0 disk /data
vda    253:0    0  20G  0 disk 
└─vda1 253:1    0  20G  0 part /
[root@10-60-24-95 ~]# dd if=/dev/vda of=/data/vda-backup.disk
41943040+0 records in
41943040+0 records out
21474836480 bytes (21 GB) copied, 157.193 s, 137 MB/s

[root@10-60-24-95 ~]# ll -h /data/
total 20G
-rw-r--r-- 1 root root 20G Jul 13 15:09 vda-backup.disk

3.2 挂载查看dd备份的文件

(1)新建挂载点

[root@10-60-63-128 ~]# mkdir /mnt/backup

(2)计算偏移量

[root@10-60-63-128 ~]# fdisk -l -u -C 1 /data/vda-backup.disk

Disk /data/vda-backup.disk: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000acb44

                Device Boot      Start         End      Blocks   Id  System
/data/vda-backup.disk1   *        2048    41943039    20970496   83  Linux

(3)挂载copy数据

# 数据copy到中转机
[root@10-60-24-95 ~]# scp /data/vda-backup.disk root@10.60.63.128


# 首次挂载报错坏块
[root@10-60-63-128 ~]# mount -o loop,offset=1048576 /data/vda-backup.disk /mnt/backup
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.
       
# 修复磁盘
[root@10-60-63-128 ~]# yum install xfsprogs-devel -y
[root@10-60-63-128 ~]# xfs_repair /data/vda-backup.disk 

[root@10-60-63-128 ~]#  mount -o loop,offset=1048576 /data/vda-backup.disk /mnt/backup
mount: mount /dev/loop0 on /mnt/backup failed: Structure needs cleaning

[root@10-60-63-128 ~]# xfs_repair -L /dev/loop0
Phase 1 - find and verify superblock...
superblock read failed, offset 0, size 524288, ag 0, rval 0

fatal error -- Success

# 再次执行挂载
[root@10-60-24-95 ~]# mount -o loop,offset=1048576 /data/vda-backup.disk /mnt/backup

[root@10-60-63-128 ~]# ll /mnt/backup/
total 440016
lrwxrwxrwx.  1 root root         7 May 25  2019 bin -> usr/bin
dr-xr-xr-x.  5 root root      4096 Jul 13 14:32 boot
drwxr-xr-x.  2 root root         6 May 25  2019 data
drwxr-xr-x.  2 root root         6 May 25  2019 dev
drwxr-xr-x. 83 root root      8192 Jul 13 14:32 etc
drwxr-xr-x.  2 root root         6 Apr 11  2018 home
lrwxrwxrwx.  1 root root         7 May 25  2019 lib -> usr/lib
lrwxrwxrwx.  1 root root         9 May 25  2019 lib64 -> usr/lib64
drwxr-xr-x.  2 root root         6 Apr 11  2018 media
drwxr-xr-x.  2 root root         6 Apr 11  2018 mnt
drwxr-xr-x.  2 root root         6 May 29  2019 opt
drwxr-xr-x.  2 root root         6 May 25  2019 proc
dr-xr-x---.  7 root root       201 Jul 13 14:49 root
drwxr-xr-x.  2 root root         6 May 25  2019 run
lrwxrwxrwx.  1 root root         8 May 25  2019 sbin -> usr/sbin
drwxr-xr-x.  2 root root         6 Apr 11  2018 srv
drwxr-xr-x.  2 root root         6 May 25  2019 sys
-rw-r--r--   1 root root  40960000 Jul 13 14:41 test.dbf
-rw-r--r--   1 root root 409600000 Jul 13 14:47 testrw.dbf
drwxrwxrwt.  8 root root       188 Jul 13 15:06 tmp
drwxr-xr-x. 13 root root       155 May 25  2019 usr
drwxr-xr-x. 20 root root       282 May 25  2019 var


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128113.html

相关文章

  • 文件系统&&磁盘管理(六)--swap分区、回环设备、文件系统配置文件fstab

    摘要:分区分区是当内存空间不够使用时,将磁盘中的空间作为内存来使用的分区称为交换分区。 swap分区 swap分区是当内存空间不够使用时,将磁盘中的空间作为内存来使用的分区称为swap交换分区。 # free: 查看物理内存和交换空间的使用情况; -m: 以兆为单位显示; swap分区管理 1、fdisk命令创建磁盘分区时,调整分区类型为82; 2、创建交换分区...

    hiYoHoo 评论0 收藏0
  • Redis持久化RDB和AOF优缺点是什么,怎么实现的?我应该用哪一个?

    摘要:数据可以持久化,而且支持的数据类型很丰富。和我应该用哪一个如果你非常关心你的数据但仍然可以承受数分钟以内的数据丢失,那么你可以只使用持久。支持同时开启和系统重启后,会优先使用来恢复数据,这样丢失的数据会最少。 Redis是一种高级key-value数据库。数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(differenc...

    ysl_unh 评论0 收藏0
  • Linux——文件文件系统的压缩,打包备份

    摘要:压缩比压缩后压缩前占用磁盘空间大小程序压缩程序压缩程序压缩可以解开压缩的文件只能针对一个文件进行压缩文件压缩单个文件,原本的文件被压缩为的档名,源文件不存在文件显示压缩比文件查看解压缩之后的源文件文件解压缩文件,文件不存在关键字文件在 压缩比:压缩后/压缩前占用磁盘空间大小 【 .Z 】compress程序压缩 【 .zip 】zip程序压缩 【 .gz 】gzip程序压缩 可以解...

    lyning 评论0 收藏0
  • 命令总结

    摘要:博文参考命令预览基础命令文本搜索权限管理文件搜索帮助命令用户管理压缩解压网络配置关机重启常用命令系统信息显示机器的处理器架构显示正在使用的内核版本显示的信息校验内存使用显示哪些被使用显示内核的版本显示网络适配器及统计显示已加载的文件系统 博文参考 http://www.178linux.com/78199 http://www.cnblogs.com/suliuer/p/5448747...

    pubdreamcc 评论0 收藏0
  • 命令总结

    摘要:博文参考命令预览基础命令文本搜索权限管理文件搜索帮助命令用户管理压缩解压网络配置关机重启常用命令系统信息显示机器的处理器架构显示正在使用的内核版本显示的信息校验内存使用显示哪些被使用显示内核的版本显示网络适配器及统计显示已加载的文件系统 博文参考 http://www.178linux.com/78199 http://www.cnblogs.com/suliuer/p/5448747...

    zhangyucha0 评论0 收藏0

发表评论

0条评论

社区管理员

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<