Eyeglass Solutions Publication
ADAF - Installation Guide
Home

 

 

 

Solution Description

This solution consists of two modules:

  1. Autonomous Storage Failover
  2. System Information Gathering

 

Autonomous Storage Failover

 

Autonomous Storage Failover is part of DR Solution that provides the capability to perform storage failover automatically. This storage failover solution is based on condition criteria set by the administrator for triggering the failover. The solution will perform continuous monitoring and upon detecting certain event matches failover criteria, it will trigger storage failover through Eyeglass DR appliance. One of the examples of failover criteria is based on the accessibility of the storage from the application server.

 

Solution Diagram

 

The solution is based on the integration of the following components

 

 

  1. Superna
    1. Eyeglass DR
      1. Manage storage configuration replication
      2. Failover readiness
      3. Failover execution, monitoring, reporting
  2. Dell EMC
    1. PowerScale Clusters: Production and DR clusters
      1. SMB or NFS for data access
      2. SyncIQ data replication
  3. Application Servers
    1. LInux servers
    2. Windows server
    3. Optional Integration with Load Balancing (Example: Kemp Load Master, Microsoft Cluster Network Load Balancing)
  4. Autonomous Failover Code
    1. Stored and run from Eyeglass Appliance  and / or Application server

 

 

 

Solution Overview

  1. Application Service is running on both Application Servers. The data for this application is stored on the PowerScale Cluster (Prod) and accessed through SMB / NFS.
  2. Stored data on the Prod PowerScale storage is replicated to DR PowerScale storage through SyncIQ Policy replication
  3. Eyeglass DR is configured to replicate PowerScale Cluster configuration (e.g. SMB Shares / NFS exports  configuration), provide Failover Readiness status, and manage storage failover.
  4. The Autonomous Failover Code
    1. Monitor application server (Primary Application Server) and the data accessibility from Production PowerScale
    2. Upon detecting event condition Primary Application Server due to storage accessibility criteria from Production PowerScale, then send alert and initiate failover through Eyeglass
    3. Execute Pre-Failover and / or Post-Failover steps
  5. Optional integration with Load Balancing (Example : Kemp Load Master, Microsoft Cluster Network Load Balancing)

 

 

 

System Information Gathering

The second module is System Information Gathering. System Information is a collection of technical information on the overall system and resources that also includes diagnostic and troubleshooting information related to the system.

 

The common use case is for collecting system information of remote systems from a local management system for inventory collection tasks and troubleshooting.

 

 

Solution Diagram

 

 

 

Solution Overview

 

This module is to gather system information of remote machines from a local management system (Eyeglass appliance).

This module is based on Python3 code that calls and executes Operating System command / script remotely over SSH. It consists of 3 sub-modules to gather system information from three different components: Powerscale cluster, Linux server, Windows server.

 

This module consists of 3 sections that collects the following information (can be added with additional information gathering):

 

 

SectionSystem Information Gathering
PowerScale
  • OneFS version
  • Status
Linux Machine
  • OS version
  • Python version
  • System Information (e.g. hostname, cpu/memory usage)
  • Network information
  • Log collection from /var/log directory
Windows Machine
  • System Information
  • Event Logs
  • Network Information

 

PowerScale System Information

Two information is gathered from PowerScale Cluster:

 

 

System InformationCommand
OneFS versionisi version
PowerScale statusisi status -v

 

The SSH session from Eyeglass to PowerScale is using eyeglass service account that has been configured on the PowerScale with permissions and privileges by following this Eyeglass documentation

If need additional command to run on PowerScale using eyeglass service account, we need to update the permissions and privileges accordingly

 

Linux Server System Information

The following information is gathered from Linux Server:

 

 

System InformationCommand
Linux OS versioncat /etc/os-release
Python versionpython3 -V
Network informationIfconfig
Log zip /var/log and copy zip file to local

Hostname`

uptime

Manufacturer

Product Name

Version

Serial Number

Machine Type

Operating System

Kernel`

Architecture

Processor Name

Active User

System Main IP

hostname

uptime

cat /sys/class/dmi/id/chassis_vendor

cat /sys/class/dmi/id/product_name

cat /sys/class/dmi/id/product_version

cat /sys/class/dmi/id/product_serial

lscpu

hostnamectl

uname -r

arch

/proc/cpuinfo

w

hostname -I

Memory Usage

Swap Usage

CPU Usage

free

free

cat /proc/stat

 

The SSH session from Eyeglass to Linux Server is using root account

Using a non root account on the linux server might require additional sudo privileges configuration.

 

 

Windows Server System Information

The following information is gathered from Windows Server:

 

 

System InformationCommand
Event Logwevtutil epl
Overall System Informationmsinfo32
Network informationGet-NetAdapter

 

The SSH session from Eyeglass to Windows Server is using Administrator account

Using a non Administrator account on the Windows server might require additional permission configuration on Windows server.

 

 

 

Firewall Requirements

 

SSH connections need to be established from Eyeglass Appliance to PowerScale, Linux Servers, and Windows Servers.

 

PortProtocolDirectionFunction
22TCPEyeglass appliance → Isilon/PowerScale clusterSSH
22TCPEyeglass appliance → Linux machinesSSH
22TCPEyeglass appliance → Windows machinesSSH

 

 

 

 

Installation

Eyeglass Installation

Refer to Eyeglass Installation Document for installation procedure

 

Python3

We can use the  default python3 that is already installed on the Eyeglass appliance.

 

Additional Python Module

The following additional Python module is required:

  • urllib3

 

To install this additional module on the Eyeglass we can use this command:

pip install urllib3

 

 

 

 

OpenSSH on Windows installation

 

We need to install OpenSSH Server on the Windows servers to allow Eyeglass to establish SSH sessions to those servers for command execution. For installation OpenSSH on Windows, refer to Microsoft documentation

 

Example for installing OpenSSH Server on Windows Server 2019

 

 

  1. Open Settings, select Apps, then select Optional Features.
  2. Scan the list to see if OpenSSH is already installed. If not, at the top of the page, select Add a feature, then find OpenSSH Server then select Install
  3. Once setup completes, return to Apps and Optional Features and confirm OpenSSH is listed.
  4. Open the Services desktop app. (Select Start, type services.msc in the search box, and then select the Service app or press ENTER.)
  5. In the details pane, double-click OpenSSH SSH Server.
  6. On the General tab, from the Startup type drop-down menu, select Automatic.
  7. To start the service, select Start.

 

Start SSH services on windows

 

From PowerShell console, we can use the following command to show the status of the SSHD service:

 

PS C:\Users\Administrator> get-service | findstr ssh

 

Stopped  ssh-agent          OpenSSH Authentication Agent

Stopped  sshd               OpenSSH SSH Server

 

 

To start the service:

 

PS C:\Users\Administrator> Start-Service sshd

PS C:\Users\Administrator> Start-Service ssh-agent

 

Once started it should show the running state

 

PS C:\Users\Administrator> get-service | findstr ssh

Running  ssh-agent          OpenSSH Authentication Agent

Running  sshd               OpenSSH SSH Server

 

 

 

 

© Superna Inc