Data Backup and Recovery

snap creator 4.0(VIBE) and vfiler

chao
8,906 Views

Hi Guru

IHAC upgrade his SC3.6 to SC 4.0 to do backup in vSphere environment.  they use vfiler instead of directly using filer.  but they found it seems SC 4.0 could not work well with vfiler.

they rebuild conf file step-by-step by wizard.   but in the conf file, there is no any entry for vfiler.  I paste the partial conf contents here.

CONFIG_TYPE=STANDARD

LOG_NUM=30

SNAPDRIVE=N

SNAPDRIVE_DISCOVERY=N

LOG_TRACE_ENABLE=N

USE_PROXY=N

NTAP_PWD_PROTECTION=Y

NTAP_TIMEOUT=60

META_DATA_VOLUME=

USE_GLOBAL_CONFIG=N

VOLUMES=auto:detect

FEDERATED_APPLICATIONS=

ALLOW_IP_ADDR=N

SC_TMP_DIR=

NTAP_USERS=tscbjanp01:root/324d77646f533659685a537566636c445273467555673d3d0a

MANAGEMENT_INTERFACES=

PORT=443

TRANSPORT=HTTPS

SECONDARY_INTERFACES=

For volume,  it's auto:detect,  So at least wizard did not provide vfiler information.   when use this conf to do backup,  SC complain that could not find volume entry in export file.  yes. in vfiler0's export, there is no entry, but in vfiler, there is a entry for that volume.   We have to insert unnecessary entry in vfiler0's export,  then backup jobs could go ahead.

I am not sure if there is extra configuration steps for vfiler.  (when I manually add a entry as below, but useless)

NTAP_USERS=tscbjanp01:root/324d77646f533659685a537566636c445273467555673d3d0a

VFILER=tscbjanv01@tscbjanp01:tscdbm01

MANAGEMENT_INTERFACES=

PORT=80

TRANSPORT=HTTP

SECONDARY_INTERFACES=

in fact, SC3.6 could work with vfiler.  Does SC 4.0 do more configuration check (for example, checking export file) so that could not go ahead?

the related discussing is https://communities.netapp.com/thread/30496   and case# is 2004411617

Would you please advise us?  Any input are appreciated.

Thanks and Best Regards!

TC

14 REPLIES 14

ktenzer
8,863 Views

Hi TC,

In Snap Creator 4.0 we have depricated the VFILERS option in the config. It is no longer needed as ONTAP supports the APIs to do snapvault and snapmirror in the vfiler.

Your options:

1) Use vfiler in SC config. This means enter vfiler and vfiler credentials when setting up SC configs and dont use physical controller. The vfiler and vfilers should be in VOLUMES, SNAPVAULT_VOLUMES, SNAPMIRROR_VOLUMES, and  of course NTAP_USERS. SC will communicate directly and only with vfilers.

2) Use physical controller which requires setting up relationships for snapvault or snapmirror in physical controller. In this case you use physical controller everywhere in SC and SC only communicates to physical controller.

In your config you just need to change following params:

NTAP_USERS=tscbjanv01:root/324d77646f533659685a537566636c445273467555673d3d0a

The VFILERS parameter basically allowed SC to go through physical filer and for just snapmirror and snapvault we would do vfiler tunneling from physical to vfiler but as I mentioned since we can now do snapvault in vfiler directly we dont need to tunnel so we depricated this.

If you still want to do vfiler tunnels then use SC 3.6 and stay with it.

Hope this helps

Regards,

Keith

chao
8,863 Views

Hi Keith

Thanks for help.   Do you mean we should use vfiler IP/account instead of physical filer for NTAP_USERS setting?  We will try.

Be honest, we still like 3.6 style but 3.6 could not display local time when check job status.


BR

TC

chao
8,863 Views

Hi Keith

Have you a guide how to setup a vfiler account for snapcreator access?

BR

TC

ktenzer
8,863 Views

Should be same as normal account just SC server needs HTTP port 80 access to vfiler

Keith

chao
8,863 Views

Hi Keith

thanks for your reply.  after reset root passwd from CLI "vfiler context <vfilername>" and "passwd", change HTTPS to HTTP,  the SC could work with vfiler directly. Yes. SC could create snapshot for the volume inside vfiler.

Here are some question about snapvault.

1) where should we create snapvault relation?    By your previous advise,  we should build up snapvault relation in vfiler and set SNAPVAULT_VOLUMES = vfiler:volume.

2) could we still build-up snapvault relation in physical filer for those volumes inside vfiler?    Because customer may not want to build-up backup IPs for every vfiler, he still want to use physical filer (only one backup interface) for those volumes in vfilers.  is it possible?

we try to do following setting but no lucky.

VOLUMES=vfiler:volume

SNAPVAULT_VOLUMES=physicalfiler:tscdbm01

Do you think if it should work or if there is anything we missed?

sivar
8,863 Views

It should work, except that you will still need to supply with the credential of physicalfiler to SC to execute snapvault update commands.

(In a DFM scenario, you will have the DFM credential and ask a protection manager update for the dataset).

Keith, please correct me if I am wrong.

chao
8,296 Views

I want to "cheat" SC to check/update snapvault relation at physical filer side.  if necessary, I will ask end user to test it again.

chao
8,296 Views

in this scenario, I did not use DFM and dataset.   but we configure DFM in SC(but I remember no PM, We just want DFM collect and record SC's notification), Do you think we should remove DFM setting in SC conf?

sivar
8,296 Views

You can leave DFM details in. No worries.

chao
8,296 Views

Hi Siva

I ask customer to try again.  it sounds SC 4.0 could not support

VOLUMES=vfiler:volume

SNAPVAULT_VOLUMES=physicalfiler:tscdbm01

Customer told me after SC finish backup, it will change the SNAPVAULT_VOLUMES setting to vfiler.  (i guess it's related with discovery phase).  Do you think if there is any way to disable discovery phase?

@Keith  Any advises about this scenario?  I think it's reasonable that in real world, customer may want to do snapmirror/snapvault in physical filer phase rather than in vfiler.

BR

TC

appcomcnsh
8,863 Views

Hi Chao

I try change the configuration: 1. delete physical filer connection; 2. save 3. add vfiler connection, but failed

network connection is ok:

GUI logs as below:

2013-07-15 10:16:12,688 [772021236@qtp-511604114-3991] com.netapp.snapcreator.ui.service.SnapCreatorGUILogger ERROR - com.netapp.snapcreator.storage.executor.ZapiExecutorException: java.net.ConnectException: Connection refused: connect

          at com.netapp.snapcreator.storage.executor.ZapiExecutorImpl.run(ZapiExecutorImpl.java:58)

          at com.netapp.snapcreator.storage.executor.ZapiExecutorImpl.invoke(ZapiExecutorImpl.java:87)

          at com.netapp.snapcreator.storage.executor.ZapiExecutorImpl.updateApiVersion(ZapiExecutorImpl.java:203)

          at com.netapp.snapcreator.storage.executor.DirectZapiExecutor.<init>(DirectZapiExecutor.java:74)

          at com.netapp.snapcreator.storage.executor.ZapiExecutorFactory.get(ZapiExecutorFactory.java:72)

          at com.netapp.snapcreator.storage.api.StorageApiFactory.getStorage(StorageApiFactory.java:28)

          at com.netapp.snapcreator.storage.StorageCoreImpl.systemGetVersion(StorageCoreImpl.java:1551)

          at com.netapp.snapcreator.storage.StorageImpl.systemGetVersion(StorageImpl.java:359)

          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

          at java.lang.reflect.Method.invoke(Unknown Source)

          at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)

          at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)

          at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:60)

          at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)

          at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)

          at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

          at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

          at java.util.concurrent.FutureTask.run(Unknown Source)

          at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)

          at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)

          at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)

          at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:111)

          at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:99)

          at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:431)

          at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:186)

          at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)

          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)

          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)

          at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

          at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)

          at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)

          at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)

          at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

          at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)

          at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)

          at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)

          at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

          at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

          at org.mortbay.jetty.Server.handle(Server.java:326)

          at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)

          at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)

          at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)

          at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)

          at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)

          at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)

          at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Caused by: java.net.ConnectException: Connection refused: connect

          at java.net.DualStackPlainSocketImpl.connect0(Native Method)

          at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)

          at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)

          at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)

          at java.net.AbstractPlainSocketImpl.connect(Unknown Source)

          at java.net.PlainSocketImpl.connect(Unknown Source)

          at java.net.SocksSocketImpl.connect(Unknown Source)

          at java.net.Socket.connect(Unknown Source)

          at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)

          at sun.security.ssl.SSLSocketImpl.<init>(Unknown Source)

          at sun.security.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)

          at netapp.manage.http.HTTPClient.<init>(HTTPClient.java:452)

          at netapp.manage.NaServer.getSession(NaServer.java:330)

          at netapp.manage.NaServer.invokeHTTP(NaServer.java:836)

          at netapp.manage.NaServer.invokeElemForXML(NaServer.java:692)

          at netapp.manage.NaServer.invokeElem(NaServer.java:614)

          at com.netapp.snapcreator.storage.executor.ZapiExecutorImpl.run(ZapiExecutorImpl.java:53)

          ... 47 more

2013-07-15 10:16:12,688 [772021236@qtp-511604114-3991] com.netapp.snapcreator.ui.service.SnapCreatorGUILogger ERROR - STORAGE-03033: System version details of [tscbjanv01] failed with error [java.net.ConnectException: Connection refused: connect].

2013-07-15 10:16:12,688 [772021236@qtp-511604114-3991] com.netapp.snapcreator.ui.service.SnapCreatorGUILogger ERROR - STORAGE-03033: System version details of [tscbjanv01] failed with error [java.net.ConnectException: Connection refused: connect].

sivar
8,863 Views

Please provide us with the output (as executed from the physical filer)

tscbjanv01> vfiler run tscbjanv01 options http

chao
8,863 Views

Hi Siva

thanks a lot.  the authentication issue has been solved.   now customer face the following scenario:

1) vSphere datastore use the volumes inside vfiler

2) but snapvault relation is created in physical filer.

Here are some question about snapvault.

1) where should we create snapvault relation?    By your previous advise,  we should build up snapvault relation in vfiler and setSNAPVAULT_VOLUMES = vfiler:volume.

2) could we still build-up snapvault relation in physical filer for those volumes inside vfiler?    Because customer may not want to build-up backup IPs for every vfiler, he still want to use physical filer (only one backup interface) for those volumes in vfilers.  is it possible?

we try to do following setting but no lucky.

VOLUMES=vfiler:volume

SNAPVAULT_VOLUMES=physicalfiler:tscdbm01

Do you think if it should work or if there is anything we missed?  customer said he already test it but snapshot creating is OK but snapvault update is failure. but the conf files he passed to me is incorrect.  I just want to know if it's possible.  if you think it's possible,  I'd like to ask customer to do one more time testing.

sivar
8,296 Views

It should be possible. Just need to make sure that the profile/config has login credential for physicalfiler

Public