muhammad ahmad seagate technology · 2018 storage developer conference. © seagate technology. all...

19
What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest Muhammad Ahmad Seagate Technology

Upload: others

Post on 12-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1

What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

Muhammad AhmadSeagate Technology

Page 2: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 2

Supports multiple operating system Architecture portable Interface (SAS/SATA/NVMe) agnostic Storage media independent Self-Contained (short dependency tree) Open source

One tool to rule them all

Problem Statement

Page 3: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 3

Need a highly portable, secure, non-disruptive software stack to enable various use cases of storage devices that are integrated in diverse hardware platforms & operating systems.

Vision Statement

Page 4: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 4

Open source (MPL) cross-platform project, written in C, is a collection of utilities written for storage products based on the storage industry standard T10/T13/NVMe specifications that allows device diagnostics and management.

openSeaChest

Page 5: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 5

Use case based (Power, SMART, Erase etc.) Supports SATA/SAS/NVMe* direct attached Supports Windows, Linux, Free BSD, Solaris &

Vmware* ARM for Lin/Win, other arch (e.g. mips) for Linux Lightweight & portable (works anywhere) Built on customizable opensea-* libraries

openSeaChest – key features

Page 6: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 6

Big Picture

Page 7: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 7

opensea-* libraries (transport)

USBSATA SAS

Operating System Layer

Command Layer

Page 8: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 8

opensea-* libraries (transport)

USBSATA SAS

OS Layer

Command Layer Common Commands

ATA Command SCT Command SCSI/STA Command NVMe Command

send_IO

Linux ioctl Windows DeviceIOControl FreeBSD Cam IO CSMI IO

Page 9: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 9

Code Flow

SATA

OS Layer

Command Layer cmds.c : firmware_Download_Command ( )

ata_cmds.c : ata_Download_Microcode ( )

send_IO

Windows DeviceIoControl

opensea-operations/src/firmware_download.c : firmware_Download ( )

Page 10: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 10

Big Picture

Page 11: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 11

Big Picture

Page 12: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 12

openSeaChest_Basics openSeaChest_Configure openSeaChest_Erase openSeaChest_Firmware openSeaChest_FormatUnit openSeaChest_GenericTests openSeaChest_Info openSeaChest_Logs openSeaChest_NVMe openSeaChest_PowerControl openSeaChest_SMART openSeaChest_ZBD

Toolset

Page 13: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 13

--showEraseSupport

--performQuickestErase

Use cases (Repurpose)

Page 14: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 14

-v [0-4], --verbose [0 | 1 | 2 | 3 | 4] Demo

Poor Mans Bus Trace (Tips)

Page 15: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 15

--modelMatch [model Number] --onlyFW [firmware revision] --onlySeagate Demo or Screen Shots

Cherry Picking (Tips)

Page 16: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 16

Demo

Parallel Execution (Tips)

Page 17: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 17

Vmware ESXi 6.5+ (Beta) Big Endian Support UEFI transport layer JSON (Maybe) RAID (Maybe) MAC OS X (USB Support)

Coming down the pipe?

Page 18: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 18

https://github.com/Seagate/openSeaChest

https://github.com/Seagate (for libraries)

https://apps1.seagate.com/downloads/certificate.html?key=381195785857 (Bootable Linux USB Key with Tools)

References & Resources:

Page 19: Muhammad Ahmad Seagate Technology · 2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 1 What’s better than sg3utils, hd/sdparm An Introduction to openSeaChest

2018 Storage Developer Conference. © Seagate Technology. All Rights Reserved. 19