我试图找出为什么我的磁盘映像如此之大。这是源服务器的磁盘:
root # df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 395M 7.1M 388M 2% /run
/dev/sda 79G 43G 32G 58% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 395M 0 395M 0% /run/user/0
我正在创建它:
ssh [email protected] "dd if=/dev/sda " | dd of=/backup/server-images/west.img
它仍在运行,到目前为止镜像大小为 72GB - 几乎是其备份磁盘实际大小的两倍。我缺少什么?如果我有一个 200GB 的磁盘,它会是 400GB+ 吗?
然而图像是
答案1
不带参数使用dd
效率极低——每次读取都会使用 512 字节块。您可以调整dd
块大小(bs=32M
例如),但这里有一些更容易和更远的更快的替代方案
# Compressed image
ssh [email protected] "gzip --rsyncable </dev/sda" >/backup/server-images/west.img.gz
# Uncompressed image
ssh [email protected] "gzip --rsyncable </dev/sda" | zcat >/backup/server-images/west.img
# Uncompressed image with seriously fast network
ssh [email protected] "cat /dev/sda" >/backup/server-images/west.img
请注意,他们都没有使用dd
.--rsyncable
如果您gzip
不理解该标志,或者您绝对可以保证以后不会使用该标志rsync
来传输压缩图像,请忽略该标志。
顺便说一句,如果/dev/sda
安装了任何文件系统,或者任何分区正在使用,您的备份可能会损坏。这不是对实时系统执行基于块的备份的方法。
答案2
典型的——刚刚发现这个:
https://askubuntu.com/questions/537012/dd-image-size-does-it-equal-the-size-of-the-partition
所以我猜这意味着这个 .img 文件实际上是磁盘本身的大小,而不是当前使用的空间的大小