How To Upload A Core Dump File From A Data Domain Restorer For Analysis by Data Domain Support & Engineering
How To Upload A Core Dump File From A Data Domain Restorer For Analysis by Data Domain Support & Engineering
Version: 6 Article Type: Break Fix Audience: Level 30 = Customers Last Published: Fri Dec 02 12:59:01 GMT 2016
This article describes the steps required to verify if a process or kernel core dump file has been generated by an unexpected
Summary: event on a Data Domain Restorer and if so how to locate the corresponding file and upload for analysis by Data Domain
support/engineering
Version: 6 Article Type: Break Fix Audience: Level 30 = Customers Last Published: Fri Dec 02 12:59:01 GMT 2016
Summary: This article describes the steps required to verify if a process or kernel core dump file has been generated by an unexpected
event on a Data Domain Restorer and if so how to locate the corresponding file and upload for analysis by Data Domain support/engineering
Issue:
Data Domain Restorers (DDRs) run a linux based operating system known as the Data Domain Operating System
(DDOS). DDOS is configured such that if a process within DDOS (or the DDOS kernel itself) experiences an issue
causing unexpected termination (i.e. the process or kernel crashes) then a corresponding core dump file will be created.
Note that creation of core dump files can also be forced by Data Domain support when investigating certain issues.
A core dump file contains an image of the working memory being used by the process or kernel at the point of termination
and can be invaluable for post mortem analysis. This article describes:
Cause:
If a process running on a DDR terminates unexpectedly (crashes) then:
/ddr/var/core/app-20160902-04.05:
-rw-r--r-- 1 root root 32538624 Sep 2 04:05 core-incomplete.gz
Once the dump has completed the core dump file will be moved to the /ddr/var/core directory, for example:
Note that:
The uncompressed size of the core dump file is directly proportional to the amount of memory being used by the process
at the time of termination - as a result core dump files from some processes such as 'DDFS' (the Data Domain File
System) may be close to the amount of RAM installed in the DDR in size. Even once compressed these core dump files
may still be many tens of Gb in size - this is expected
It will take time for the contents of a terminating processes memory to be written to the dump device - again for large
processes this can take a number of minutes. As a result there may be a short delay before the terminating process exits
and can be restarted/service resumed
A core dump file may not be generated after every unexpected termination of a process - this depends on there being
sufficient space to write the compressed core dump file in the /ddr/var/core directory and the type of issue encountered
Compressed core dump files may be written to a location other than /ddr/var/core, for example, on larger systems core
dump files may actually exist under /ddr/var/ext - if this happens, however, there will be a symbolic link created in the
/ddr/var/core directory pointing to the physical core dump file so all information in this article remains valid/correct
The name of the core dump file contains useful information which can be used to identify the process which created the
dump and the time/date of creation, i.e.:
${PROCESS_NAME}.core.${PID}.${UNIX_EPOCH}.gz
Where:
PROCESS_NAME: the name of the process that terminated and generated this core dump file
PID: the process ID which was being used by the process at the point of termination
UNIX_EPOCH: time in seconds since January 1 1970 when the process core dump was created
Note that:
It will take time for the working memory of the DDOS kernel to be dumped to disk - as a result there may be a short delay
before the system reboots
A core dump file may not be created after every unexpected termination of the DDOS kernel - again this depends on there
being sufficient space to write the compressed core dump file to the /ddr/var/core directory and the type of issue
encountered
The name of the directory containing the core dump file indicates the date/time at which the core dump was created as
this is always named kernel-[YYYYMMDD-HH.MM]
Resolution:
Step 1 - Identify core dump files on the DDR
It is first necessary to identify which core dump files exist on a DDR - this can be done by listing the contents of the
/ddr/var/core directory.
Identifying core dump files on the DDR itself - DDOS 5.5.x (and later):
Note that this command only lists process core dump files and does not provide details of kernel core dump files
Identifying core dump files on the DDR itself - all versions of DDOS:
Note that on some systems (such as those using encryption of data at rest) the 'priv set se' command may also
prompt for details of a user with a role of 'security'
List the contents of the /ddr/var/core directory using the 'se ls -l /ddr/var/core' command:
# se ls -l /ddr/var/core
total 647612
-rw-r--r-- 1 root root 492903386 Apr 13 02:49 ddfs.core.11539.1460540776.gz
-rw-r--r-- 1 root root 123426535 Mar 1 2016 ddfs.core.16431.1456839840.gz
-rw-r--r-- 1 root root 41100854 Apr 11 10:09 ddfs.core.2088.1460394487.gz
drwx------ 2 root root 4096 Sep 6 12:20 kernel-20160906-01.14
drwx------ 2 root root 16384 Feb 23 2016 lost+found
-rw-r--r-- 1 root root 488 Sep 6 01:15 savecore_log.20160906-01.14
-rwxrwxrwx 1 root root 5021185 Mar 23 02:31 sms.core.5335.1458725501.gz
Note that this lists all process core dump files and any directories containing kernel core dump files. To list the
contents of a directory containing a kernel core dump file use 'se ls -l /ddr/var/core/[directory]':
# se ls -l /ddr/var/core/kernel-20160906-01.14
total 201516
-rw-r--r-- 1 root root 206141752 Sep 6 01:15 vmcore.gz
Confirm that the FTP/FTPS service is enabled on the DDR and that the client system is an 'allowed host' (refer to the
'notes' section of this article for details)
Connect to the DDR using the FTP/FTPS client - note that the username used to establish the connection must have a
role of admin on the DDR:
$ ftp 10.64.13.192
...
Name (10.64.13.192:fordj6): sysadmin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> ls core
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 492903386 Apr 13 09:49
ddfs.core.11539.1460540776.gz
-rw-r--r-- 1 0 0 123426535 Mar 01 2016
ddfs.core.16431.1456839840.gz
-rw-r--r-- 1 0 0 41100854 Apr 11 17:09
ddfs.core.2088.1460394487.gz
drwxr-xr-x 2 0 0 4096 Sep 08 08:48 kernel-20160906-01.14
drwx------ 2 0 0 16384 Feb 23 2016 lost+found
-rw-r--r-- 1 0 0 488 Sep 06 08:15 savecore_log.20160906-01.14
-rwxrwxrwx 1 0 0 5021185 Mar 23 09:31 sms.core.5335.1458725501.gz
226 Directory send OK.
The contents of directories containing kernel core dump files can be listed by appending the directory name:
ftp> ls core/kernel-20160906-01.14
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 206141752 Sep 06 08:15 vmcore.gz
226 Directory send OK.
Confirm that the NFS protocol is enabled on the DDR and that an export for /ddvar/core exists and the NFS client system
has access (refer to the 'notes' section of this article for details)
On the NFS client mount the /ddvar/core directory from the DDR:
List the contents of the mounted /ddvar/core directory (and any subdirectories containing kernel core dump files):
root@ubuntu-jamesf:/# ls -l /root/mnt
total 5180896
-rw-r--r-- 1 root root 492903386 Apr 13 10:49 ddfs.core.11539.1460540776.gz
-rw-r--r-- 1 root root 123426535 Mar 1 2016 ddfs.core.16431.1456839840.gz
-rw-r--r-- 1 root root 41100854 Apr 11 18:09 ddfs.core.2088.1460394487.gz
drwxr-xr-x 2 root root 4096 Sep 8 09:48 kernel-20160906-01.14
drwx------ 2 root root 16384 Feb 23 2016 lost+found
-rw-r--r-- 1 root root 488 Sep 6 09:15 savecore_log.20160906-01.14
-rwxrwxrwx 1 root root 5021185 Mar 23 09:31 sms.core.5335.1458725501.gz
root@ubuntu-jamesf:/# ls -l /root/mnt/kernel-20160906-01.14/
total 1612128
-rw-r--r-- 1 root root 206141752 Sep 6 09:15 vmcore.gz
Confirm that the CIFS protocol is enabled on the DDR and that a share for /ddvar exists and the CIFS client system has
access (refer to the 'notes' section of this article for details)
Use the CIFS client to browse the contents of the 'core' directory within the CIFS share:
Identifying core dump files using an autosupport from the system:
Autosupports contain a listing of the contents of the /ddr/var/core directory - as such any autosupport created after a core
dump file is created will contain details of that file. For example:
/ddr/var/core:
total 5180896
-rw-r--r-- 1 root root 492903386 Apr 13 02:49 ddfs.core.11539.1460540776.gz
-rw-r--r-- 1 root root 123426535 Mar 1 2016 ddfs.core.16431.1456839840.gz
-rw-r--r-- 1 root root 41100854 Apr 11 10:09 ddfs.core.2088.1460394487.gz
drwx------ 2 root root 4096 Sep 6 12:20 kernel-20160906-01.14
drwx------ 2 root root 16384 Feb 23 2016 lost+found
-rw-r--r-- 1 root root 488 Sep 6 01:15 savecore_log.20160906-01.14
-rwxrwxrwx 1 root root 5021185 Mar 23 02:31 sms.core.5335.1458725501.gz
/ddr/var/core/kernel-20160906-01.14:
total 201524
-rw-r--r-- 1 root root 206141752 Sep 6 01:15 vmcore.gz
Step 2 - Determine which core files are required for further analysis:
Commonly a core dump file will be associated with a single event which took place on the DDR, i.e.:
A single unexpected restart of a process - in this case there may be a single core dump file within the core directory
relating to the restart
A single unexpected reboot of the system - in this case there may be a single 'kernel-[YYYYMMDD-HH.MM]' directory
within the core directory relating to the reboot - within this directory there will be a single vmcore.gz file
Verify that the date/time of the corresponding file matches the approximate date/time of the issue and that it is of the
expected type (for example a restart of the DDFS process may produce a core dump file with 'ddfs' in its name, a reboot
of the system may produce a core dump file called vmcore.gz).
In this scenario this single file should be uploaded for further analysis.
In some scenarios, however, the issue may have caused multiple core dump files to be created - for example the DDFS
process may have unexpectedly terminated multiple times in a short duration creating multiple core dump files. In this
case look for the oldest core dump file created during the issue (i.e. the first in the series of corresponding core dump
files). Initially this single file should be uploaded for further analysis - Data Domain support will then advise whether further
core dump files are required.
Via FTP/FTPS:
Confirm that the FTP/FTPS service is enabled on the DDR and that the client system is an 'allowed host' (refer to the
'notes' section of this article for details)
Connect to the DDR using the FTP/FTPS client - note that the username used to establish the connection must have a
role of admin on the DDR:
$ ftp 10.64.13.192
...
Name (10.64.13.192:fordj6): sysadmin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Change to the directory containing the core dump file to be uploaded:
ftp> cd core/kernel-20160906-01.14
250 Directory successfully changed.
ftp> bin
200 Switching to Binary mode.
Via NFS:
Confirm that the NFS protocol is enabled on the DDR and that an export for /ddvar/core exists and the NFS client system
has access (refer to the 'notes' section of this article for details)
On the NFS client mount the /ddvar/core directory from the DDR:
Copy the core dump file from the NFS mounted /ddvar/core directory to a local directory:
Via CIFS:
Confirm that the CIFS protocol is enabled on the DDR and that a share for /ddvar exists and the CIFS client system has
access (refer to the 'notes' section of this article for details)
Browse to the CIFS share and copy the core dump file to a local directory
Via SCP:
# adminaccess show
Service Enabled Allowed Hosts
----------- ------- -------------
ssh yes -
scp no (same as ssh)
...
Use the SCP client to copy the core dump file to the local system:
root@ubuntu-jamesf:/# scp
[email protected]:/ddr/var/core/kernel-20160906-01.14/vmcore.gz /tmp
EMC Data Domain Virtual Edition
Password:
vmcore.gz 100% 197MB 98.3MB/s 00:02
An EMC support engineer can provide details of a temporary FTP account which remains available for use for 7 days
from creation. This temporary account can be accessed via the following clients:
A web browser (using the HTTPS protocol)
FTP/SFTP
To obtain details of a temporary FTP account please contact the EMC support engineer dealing with any corresponding
service request
Anonymous FTP:
Use an FTP client to connect to ftp.emc.com and log in as 'anonymous' (note that your e-mail address should be used as
the password):
root@ubuntu-jamesf:/tmp# ftp ftp.emc.com
...
Name (ftp.emc.com:fordj6): anonymous
331 User name okay, need password.
Password:
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Change directory to /incoming/datadomain:
ftp> cd /incoming/datadomain
250 File action OK.
Note that the /incoming/datadomain directory is blind (i.e. its contents cannot be listed - this is expected)
Create a new directory with name equivalent to the corresponding service request:
ftp> mkdir 12345678
257 "/incoming/datadomain/12345678"
Enter the newly created directory:
ftp> cd 12345678
250 File action OK.
Set transfer mode to binary:
ftp> bin
200 Command OK.
Use the 'put' command to upload the core dump file:
ftp> put vmcore.gz
local: vmcore.gz remote: vmcore.gz
200 Command OK.
150 File OK.
226 /incoming/datadomain/12345678/vmcore.gz
206141752 bytes sent in 315.77 secs (637.5 kB/s)
Note that if core dump files are extremely large it may be beneficial to split them prior to upload such that the upload can
be completed in smaller increments. For details on splitting a file prior to upload please refer to the following article:
https://support.emc.com/kb/333893
Step 5 - Notify EMC Data Domain support that the files have been uploaded:
Regardless of method used to upload the core dump file (and possibly support bundle) the EMC Data Domain support
engineer dealing with you service request should be notified that upload is complete. Please specify:
Upload method used
Names/sizes of files uploaded
If using anonymous FTP the exact directory created on ftp.emc.com to which files were uploaded
If the core dump file was split the method used to achieve this
Failure to notify the support engineer may cause delays in further analysis.
Notes: How to enable the FTP/FTPS service on a DDR and provide access to client systems:
Use the 'adminaccess show' command to determine whether the FTP/FTPS services are enabled and which client
systems are currently specified as 'allowed hosts':
# adminaccess show
Service Enabled Allowed Hosts
----------- ------- -------------
...
ftp no -
ftps no -
...
----------- ------- -------------
To enable a specific service use the 'adminaccess enable' command, i.e.:
# adminaccess enable ftps
FTPS Access: enabled
Note that FTP and FTPS are mutually exclusive - as a result it may be necessary to disable an existing enabled
service before the required service can be enabled:
Alternatively to allow FTP/FTPS access to the DDR by all clients the following command should be used (again
the required service should be specified as necessary):
Note that specific client systems can be identified using host name or IP address however if the host name is
used this must be resolvable by the DDR.
How to enable NFS access to /ddr/var/core on DDR and provide access to client systems:
Confirm that the NFS protocol is enabled on the DDR:
# nfs enable
NFS server is already enabled.
Verify whether the /ddvar/core directory is already NFS exported and if so whether the corresponding NFS client has
access (in this case the directory is not NFS exported):
If no NFS export for /ddvar/core exists or the NFS client does not have access to an existing export a new export should
be created
To allow access to the /ddvar/core export for a specific client system the following command can be used:
Alternatively to allow access to the /ddvar/core export from all client systems the following command should be
used:
Note that specific client systems can be identified using host name or IP address however if the host name is
used this must be resolvable by the DDR.
How to enable CIFS access to /ddr/var/core on DDR and provide access to client systems:
Confirm that the CIFS protocol is enabled on the DDR:
# cifs enable
The filesystem is enabled and running.
Starting CIFS access...
Verify whether a CIFS share already exists for the /ddvar directory and if so whether the corresponding CIFS client has
access (in this case the directory is not shared via CIFS):
Shares displayed: 1
If no CIFS share exists for the /ddvar directory a new share will need to be created. This can be done specifying the
explicit host name/IP address of the CIFS clients:
If an existing CIFS share exists for the /ddvar directory however the CIFS client is not listed against the share the client
will need to be added:
Note that:
All of the above examples assume that required network ports are open between the client system and the DDR - for
details of ports used see the following KB article: https://support.emc.com/kb/323297
Any changes made to the DDR whilst configuring FTP/FTPS/NFS/CIFS access should be reversed once core dump files
have been identified and copied off of the DDR
For further details around using CIFS when a DDR is configured in workgroup mode see the following KB article:
https://support.emc.com/kb/323398
There may be some scenarios where permissions set against core dump files generated on a DDR prevent access by
users and as a result they cannot be listed/copied off of the system. In this scenario permissions against files can be
opened up as follows:
Log into the Data Domain command line shell (DDSH)
Drop to 'se' mode:
Note that on some systems (such as those using encryption of data at rest) the 'priv set se' command may also
prompt for details of a user with a role of 'security'
Open up restrictions on the corresponding file/directory using the 'se chmod' command, for example:
Article Properties: Validation Status: Approved Original Create Date: Wed Nov 30 11:35:45 GMT 2016
Originally Created By: SFDC Admin Last Modified: Fri Dec 02 12:59:01 GMT 2016