- Solution Description
- Autonomous Storage Failover
- Solution Diagram
- Solution Overview
- System Information Gathering
- Solution Diagram
- Solution Overview
- PowerScale System Information
- Linux Server System Information
- Windows Server System Information
- Firewall Requirements
- Eyeglass Installation
- Python3
- Additional Python Module
- OpenSSH on Windows installation
- Start SSH services on windows
Solution Description
This solution consists of two modules:
- Autonomous Storage Failover
- 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
- Superna
- Eyeglass DR
- Manage storage configuration replication
- Failover readiness
- Failover execution, monitoring, reporting
- Eyeglass DR
- Dell EMC
- PowerScale Clusters: Production and DR clusters
- SMB or NFS for data access
- SyncIQ data replication
- PowerScale Clusters: Production and DR clusters
- Application Servers
- LInux servers
- Windows server
- Optional Integration with Load Balancing (Example: Kemp Load Master, Microsoft Cluster Network Load Balancing)
- Autonomous Failover Code
- Stored and run from Eyeglass Appliance and / or Application server
Solution Overview
- 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.
- Stored data on the Prod PowerScale storage is replicated to DR PowerScale storage through SyncIQ Policy replication
- Eyeglass DR is configured to replicate PowerScale Cluster configuration (e.g. SMB Shares / NFS exports configuration), provide Failover Readiness status, and manage storage failover.
- The Autonomous Failover Code
- Monitor application server (Primary Application Server) and the data accessibility from Production PowerScale
- Upon detecting event condition Primary Application Server due to storage accessibility criteria from Production PowerScale, then send alert and initiate failover through Eyeglass
- Execute Pre-Failover and / or Post-Failover steps
- 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):
Section | System Information Gathering |
PowerScale |
|
Linux Machine |
|
Windows Machine |
|
PowerScale System Information
Two information is gathered from PowerScale Cluster:
System Information | Command |
OneFS version | isi version |
PowerScale status | isi 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 Information | Command |
Linux OS version | cat /etc/os-release |
Python version | python3 -V |
Network information | Ifconfig |
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 Information | Command |
Event Log | wevtutil epl |
Overall System Information | msinfo32 |
Network information | Get-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.
Port | Protocol | Direction | Function |
22 | TCP | Eyeglass appliance → Isilon/PowerScale cluster | SSH |
22 | TCP | Eyeglass appliance → Linux machines | SSH |
22 | TCP | Eyeglass appliance → Windows machines | SSH |
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
- Open Settings, select Apps, then select Optional Features.
- 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
- Once setup completes, return to Apps and Optional Features and confirm OpenSSH is listed.
- Open the Services desktop app. (Select Start, type services.msc in the search box, and then select the Service app or press ENTER.)
- In the details pane, double-click OpenSSH SSH Server.
- On the General tab, from the Startup type drop-down menu, select Automatic.
- 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