我正在尝试为 centos 6.6 上的 mongodb 创建快照。
root@ ~]# lvscan
File descriptor 12 (pipe:[23409]) leaked on lvscan invocation. Parent
PID 3579: /bin/bash
File descriptor 13 (pipe:[23409]) leaked on lvscan invocation. Parent
PID 3579: /bin/bash
ACTIVE '/dev/vg_test/lv_root' [50.00 GiB] inherit
ACTIVE '/dev/vg_test/lv_home' [411.49 GiB] inherit
ACTIVE '/dev/vg_test/lv_swap' [3.78 GiB] inherit
我的 mongodb 数据位于文件夹 /home/db/mongodata 中。我需要运行的命令是
lvcreate -s -n mysnapshot -L450G /dev/mapper/vg_test-lv_home.
但这将拍摄整个卷的快照。
- 我只想要 /home/db/mongodata 的快照。可以吗?
- 此外,如何直接在另一台服务器上创建此快照,而不是在同一台机器上创建快照并将其复制到另一台服务器。
答案1
关于你的第一个问题:不,你拍摄的是完整逻辑卷的快照。请参阅使用快照进行备份在 LVM 操作指南中了解详情。提示:完整阅读 HowTo 肯定不会造成伤害。;)
至于你的第二个问题:想想看?如何在不复制的情况下复制数据?在某个时间点,数据必须以某种方式到达第二台服务器。
在相当大规模的部署中,通常会使用一台磁盘非常大但整体性能较低的服务器作为隐藏副本集成员,主要用于备份目的。这有几个优点:
- 备份过程可以绝不干扰应用程序,因为隐藏成员永远不能成为主要成员,并且永远不会被任何驱动程序查询,即使允许或首选次要成员。
- 将创建的备份发送到异地不会影响应用程序可用的带宽(如果操作正确)。
- 您不必手动同步生产环境中的数据。