Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1918715
  • 博文数量: 346
  • 博客积分: 10221
  • 博客等级: 上将
  • 技术积分: 4079
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-01 19:43
文章分类

全部博文(346)

文章存档

2012年(1)

2011年(102)

2010年(116)

2009年(127)

我的朋友

分类: 服务器与存储

2011-01-02 02:05:30

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

 

 

 

 

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

 

备份发起

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

 

 

master servermedia server的通讯

Bpschedbpcd的通讯是通过TCP完成的。Bpcd通过inetd侦听13782端口。

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

 

Media server的备份流程

Media serverbpcd进程收到请求后,会启动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 serverbptm或者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里面去。

 

阅读(4106) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-08 13:44:15

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com