16 12
发新话题
打印

【原创】Netbackup5.x工作原理

【原创】Netbackup5.x工作原理

VERITAS Netbackup工作原理可以用下图来表示:




为了方便理解,以一个定时备份为例说明各个进程的工作原来和作用。

备份发起
首先是bprd,backup request daemon, 备份恢复任务的最终发起者,同时也是用户管理接口。如果是手工备份,通过它提交;如果是定时任务,由它根据netbackup 的”wakeup interval”参数 定时唤起bpsched,去检查备份计划表,发现有一个备份到点了,它就会发出备份指令。


master server和media server的通讯
Bpsched和bpcd的通讯是通过TCP完成的。Bpcd通过inetd侦听13782端口。
对于熟悉unix socket编程的人来说,inetd的工作原理应该并不陌生。Inetd是最经典的多线程程序,虽然有它的时候,线程概念还没有被提出来。Inetd daemon进程根据inetd配置,侦听一堆端口,如果某个端口收到请求就fork一个进程进行处理,我们常用的telnet,ftp等等都是由inetd管理,这样做的好处是,如果有1000个tcp端口需要侦听,如果每个进程侦听一个端口,就需要1000个进程,这显然对unix是个很大的负担,如果用一个进程来完成这1000个进程的工作是个比较好的选择。大家打开inetd的配置文件(linux上的xinetd是用目录来管理配置文件的),可以看到,当13782端口收到请求时inetd会fork bpcd(backup communication daemon)进程。

Media server的备份流程
Media server的bpcd进程收到请求后,会启动bpbrm(backup and restore manager)进程,bpbrm负责启动和管理备份作业的写进程,如果是磁带备份就启动bptm(backup tape manger),如果是磁盘备份就启动bpdm(backup disk manager)。如果bptm/bpdm没有报错,就通过inet 向客户端的bpcd提出备份要求, 客户端bpcd收到指令,启动bpbkar(backup and archive manager),这个进程会收集指定的备份文件数据,把他们发送给media server的bptm或者bpdm。

总的来说,bprd/bpdbm/bpcd/bpbkar/bptm/bpdm这些进程都是通过TCPIP进行的通讯的,/etc/services记录了这些进程的端口号,可以根据需要,对他们进行调整。

bptm/bpdm的工作原理
下面介绍一下bptm/bpdm的工作原理,bptm/bpdm采用的是常见的parent/client结构,在unix下写过ipc程序的人应该多写过这样的程序。当bpdm第一次收到客户端的bpbkar的消息时,fork一个子进程,子进程和父进程具有相同的进程上下文(context),然后就由子bptm进程负责接收bpbkar发来的备份数据(所以在备份的时候media server应该能看到多个bptm/bpdm进程)。子bptm进程把接收到的数据放入一块共享内存区,然后由父bptm进程从共享内存区中把数据读出,写到磁带上。所以当多个备份任务同时进行时,会有子bptm进程,而父bptm进程只有一个。

Metadata的传输过程
上面主要介绍了备份的数据流,没有包括metadata(catalog数据)的传输过程,这部分就是上图的虚线部分, metadata的传输比较简单,就是顺着我们前面介绍的路,原路返回,由bpsched发给bpdbm(backup database manager) 写到catalog里面去。

TOP

发现图片没发贴,上传word版本

附件

Netbackup工作原理.rar (40.21 KB)

2005-7-2 16:39, 下载次数: 982

TOP

写的不错
不过我想了解一个,我想每天将一个linux(server)的文件系统(大约100G),文件个数有100万个。
备份到另外一台服务器(backup)的磁盘,也就是每天晚上做一个同步,大约需要多少时间?

我现在用rsync写了一个shell,但是很慢。每次同步对比数据的时间都很长。

另外我还需要每个星期拿一块硬盘过来将服务器的数据备份到它上面,也算是同步一次吧,以防止电源故障等。

如果这里有netbackup的销售和技术方面的人员,请帮住解决一下,销售请短信给我一个和实际价格不超过30%的报价。



另外我还考虑将内部的windows客户机备份到一个文件服务器(可以是一台pc安装有几块大硬盘),要求是管理员负责
备份,因为员工很多时候是不会记得主动备份的。客户端大约50个。这个我想通过backup exec应该比较方便,请问销售人员,
这个方式在软件方面的成本如何?

谢谢!

TOP

100w/100G也就是每个文件100k,这样的备份最适合用flash backup来做,它不一个个备文件,而是直接备份文件系统,能够大大缩短备份窗口(时间)

50个client你最好用nbu/be+DLO,这个方案很经济,而且满足你的要求

如果问销售等信息,你最好提供你是哪个地区和行业的。或者直接找本地代理。

TOP

看似零乱,不过仔细看看写得还是很清楚。谢谢楼主共享

楼主的unix和unix的编程功力很深啊, 能够从原理出发理解nbu。。。佩服

另外soway ,你问问题新建一个主题行不?

[ Last edited by tina_zhang on 2005-7-3 at 16:12 ]

TOP

鼓励原传,建议置顶

[ Last edited by tina_zhang on 2005-7-3 at 16:21 ]

TOP

谢谢鼓励, nbu进程之间的关系是复杂了点,文笔再臭了那么一点

TOP

引用:
Originally posted by tina_zhang at 2005-7-3 16:11
看似零乱,不过仔细看看写得还是很清楚。谢谢楼主共享

楼主的unix和unix的编程功力很深啊, 能够从原理出发理解nbu。。。佩服

另外soway ,你问问题新建一个主题行不?
sorry,我也是忽然想到,然后就回复在一个帖子里边了。

TOP

引用:
Originally posted by newstorage at 2005-7-3 15:38
100w/100G也就是每个文件100k,这样的备份最适合用flash backup来做,它不一个个备文件,而是直接备份文件系统,能够大大缩短备份窗口(时间)

50个client你最好用nbu/be+DLO,这个方案很经济,而且满足你的要求 ...
能否介绍一下flash backup?
我个人理解是这样的:直接从文件系统的block开始记录变化情况,第一次全部备份,以后就将变化的数据备份下来。

谢谢!

TOP

你的理解有误,关于flashbackup请参阅
http://veritas.dostor.com/tech/d ... 12/0009823959.shtml

TOP

 16 12
发新话题