随着计算机和网络的不断发展,网络环境危机四伏,人们开始逐渐意识到备份的重要性。所以今天我们就来简单讨论一下与NAS相关的NDMP备份吧。

 

首先让我们从回答两个问题开始今天的讨论。到底什么是NDMP? 以及为什么要用NDMP协议做备份呢?

NDMP是一个控制备份和恢复操作的协议。在备份和恢复时,NDMP协议会控制带库的机械手来进行一些SCSI的操作。

对于本地带库的备份,NDMP是不走网络的;而对于三向备份,数据流网络和控制信息网络也是分开的,这样在传输数据就防止了网络拥塞。

 

NDMP备份可以分为两类,2-way(直连备份也叫本地备份)和 3-way(三向备份)的备份。

 

2-way

备份数据从存储系统流向我们的DM 然后从DM直接备份到备份设备带库中,而不会通过网络,整个过程中只有备份软件的控制数据是会通过网络传输的。

1.png

3-way

备份数据从存储系统流向我们的DM,再从DM连接并传输到远程的NDMP磁带服务器,最后磁带服务器会连接到指定的带库设备。(NDMP磁带服务器可以是一个DM或者是其他的文件服务器)

在三向备份配置中,备份数据和控制数据都通过网络传数据,此链接可以采用专用网络,这样避免网络拥塞等问题。

2.png


在我们了解了两种NDMP备份的模型之后,下面我们介绍一下备份的基本过程。在描述基本过程之前呢,我觉得有一些术语得先说说:

Data Service:

  • 在数据备份过程中,从硬盘上读取数据,并拷贝一份传输到NDMP的磁带服务器上。
  • 在数据恢复过程中,从NDMP磁带服务器上读取数据,并把数据写到磁盘上。

Tape Service

  • 在数据备份过程中,从NDMP数据服务器上接收数据并写到磁带上。
  • 在数据恢复过程中,从磁带上读取数据并返回给Data Service

Mover

  • 一个用来做备份或者恢复操作的Tape Service

SCSI Service

  • 用来执行低级别的SCSI命令。
  • SCSI service一般会连着带库的机器手。

知道了以上术语,我们来看看数据备份的基本流程:1. 首先DMA会与SCSI、带库以及Data Service建立连接。2. 然后在DM上会见一个NDMP的专用用户,这样我们就可以在DMA上用这个用户去和我们DM进行通信。3. 验证成功后,DMA会打开带库,并设置Mover的记录长度和窗口大小。4. MOVER_LISTENDATA_CONNECT5. DATA_START_BACKUP开始备份数据。 有人看到这里不禁会想,这些都是理论的东西,完全没有代入感。下面我截取了一组NDMP数据备份的日志信息,接下来我们通过这个日志来了解一下NDMP的具体步骤:

  • 首先DMA会去建立TCP/IP连接,会连接到NDMP服务器的10000号端口。
  • 然后DMA会验证NDMP专用账户,如果通过,我们就会看到日志中显示的如下NDMP配置信息。(包括备份类型,备份文件系统名字等等)

3.png

  • 接下来,NDMP开始自动创建快照记录文件系统当前状态,当快照创建好之后,日志中会返回CreateCallback信息。

4.png

  • 以上操作都完成之后,NDMP就开始进行数据的传输了。
  • 当所有数据传输完成,NDMP会在日志中出现一个summary,我们可以从summary中看到此次备份用时多少,平均写速度多少等。

5.png

  • 最后,NDMP会自动删掉之前创建的快照,并返回SnapsureDeleteCallback:来表示快照删除成功。

6.png


数据备份的目的是为了在原生产系统被破坏时能及时的把数据恢复出来,所以,最后我们来了解一下数据恢复的过程:

     1. 数据恢复过程前三步和数据备份过程相同,先是建立必要的连接,然后在DMA上用NDMP专用账户进行验证,待验证成功后DMA会打开带库,并对Mover进行设置。

     2. MOVER_LISTENDATA_CONNECT

     3. DATA_START_RECOVER开始恢复数据。

     4. 在三向备份过程中,还会进行NOTIFY_DATA_READ MOVER_READ

 

NDMP的具体实现过程还是比较复杂的,本文只是简单介绍了工作过程,如果有兴趣了解更多关于NDMP在工作原理及NAS配置过程,可以参考一下文档。

  https://support.emc.com/docu41473_Configuring-NDMP-Backups-on-VNX.pdf?language=en_US