使用 dd 命令实现 SAN 存储的快照数据迁移(1)
- UID
- 1066743
|
使用 dd 命令实现 SAN 存储的快照数据迁移(1)
简介随着 SAN 技术的发展,越来越多数据中心采用 SAN 存储来替代本地硬盘,数据和应用直接存放在 SAN 存储的硬盘,由存储端对数据统一管理。数据备份和数据迁移是存储系统的核心技术。随着企业业务不断发展,企业数据量成几何增长,数据迁移成为企业级信息系统在面临存储空间不足、数据安全问题的重要解决方案。同构存储系统的数据迁移技术包括:基于磁盘阵列远程数据复制技术的数据迁移、基于主机操作系统逻辑卷镜像技术的数据迁移、基于数据库备份和恢复技术的数据迁移、以及基于第三方工具的数据迁移。异构存储系统的数据迁移技术,涉及存储本身的特性是否支持迁移,不支持数据迁移的异构存储系统,可以通过虚拟化存储产品,将异构存储产品虚拟化成一个存储池,用户直接访问存储池,在存储池中创建卷,部署企业级应用,同时借助虚拟化存储产品自身的迁移技术实现数据迁移,目前 IBM 的虚拟化存储产品 SAN Volume Controller 支持多达 120 种第三方磁盘阵列。其实,如果只是想在测试或者开发环境下简单快速地实现数据的快照备份和迁移,你可以不用大费周折,dd 命令,它将会给你一个惊喜!
在本文中,我们将分析 dd 命令的用法,以实现使用不同多路方式的 SANboot OS 的快照备份和数据迁移为例,演示 dd 命令如何实现数据的快照备份和数据迁移。
dd 命令解析dd 是 Linux/Unix 下的一个非常有用的命令,作用是将指定大小的输入文件(或设备文件)按 block 为单位拷贝到指定的输出文件(或设备文件)中,并在拷贝的同时进行指定的转换。
当不指定转换 conv 选项的时候,使用指定的输入和输出块大小来复制文件(默认是从标准输入到标准输出)。dd 每次从输入文件或设备文件读取指定大小的一个块(默认是 512 字节),如果使用 bs=bytes 选项,将把全部读到的数据写到独立的输出块,这个输出块的长度和读到的数据完全一样,除非指定使用 sync 选项转换。
其他情况下,输入的时候每次读一个块,然后处理,并将输出结果收集起来,最后写到指定大小的数据块中去,最终的输出块可能会比指定的大小短一些。
dd 命令 manualdd 命令主要选项
if=FILE
指定输入文件的名称,缺省为标准输入。
of=FILE
指定输出文件的名称,缺省是标准输出。
bs=BYTES
指定输入输出块的大小,取代 ibs 和 obs 标志,由 bs 标志指定的块大小值必须始终是使用的媒介物理块大小的整数倍。
cbs=BYTES
指定由可变长度到固定长度和从固定长度到可变长度的转换块大小。
conv=CONVERSION[,CONVERSION]...
指定一个或多个转换选项。多个转换之间用逗号隔开。
count=BLOCKS
仅复制由 BLOCKS 变量指定的输入块的数量。
ibs=BYTES
指定输入块的大小;缺省为 512 字节。
obs=BYTES
指定输出块的大小;缺省为 512 字节。
seek=BLOCKS
在复制之前,从输出文件开头跳过 BLOCKS 值的块大小, 每块大小为 obs-byte 字节。
skip= BLOCKS
在开始复制之前跳过指定的 BLOCKS 值的输入块,每块大小为 ibs-byte 字节。
数字值选项 BLOCKS 和 BYTES 后面可以跟一个乘数:c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M, GB =1000*1000*1000, G =1024*1024*1024 等等,同理可得 T, P, E, Z, Y。
常用 CONV 转换参数介绍
block
将变长记录转换到固定长度,长度由转换块大小(cbs)决定。对于换行用空格代替,必要时使用空格填充。
unblock
将固定长度的块转化为可变长度。长度由转换块大小(cbs)决定。该选项与 block 选项冲突。
lcase
将所有大写字符转换为小写字符。
nocreat
不创建输出文件;输出文件必须已经存在。
excl
如果输出文件已经存在则操作失败,该选项与 nocreat 选项冲突。
notrunc
不截取输出文件。
ucase
把所有小写字符转换为大写字符。
swab
交换每对输入字节。对于 GNU dd,如果读入的最后的字节数是奇数,则只是简单的复制到输出(因为没有能跟它交换的字节)。
noerror
发生错误时也不停止进程,继续进行。
sync
使用 zero 字节将每个输入块填充到 ibs 值指定的长度。如果指定 block 或者 unblock 选项,则以空格补齐。
fdatasync
在复制结束之前,同步输出数据。改选项将会做物理写入操作。
fsync
在复制结束之前,同步输出数据和元数据。改选项将会做物理写入操作。 |
|
|
|
|
|