stackifest16: building a cluster with stacki - greg bruno

25
Greg Bruno VP of Engineering

Upload: stackiq

Post on 25-Jan-2017

379 views

Category:

Software


2 download

TRANSCRIPT

Page 1: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Greg BrunoVP of Engineering

Page 2: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Workshop: Building a Cluster with Stacki

Page 3: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Datacenter Architecture

Page 4: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Frontend Services

Services to build backend nodes◦ DHCP◦ TFTP◦ Named (optional)

Services to access backend nodes◦ SSH key management◦ Parallel execution shell

Page 5: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Host Configuration Spreadsheet

Page 6: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Backend Installation

Save your Host Configuration spreadsheet as a CSV

Import CSV on frontend◦ “stack load hostfile file=hosts.csv”

Tell backend nodes to install on their next PXE boot◦ “stack set host boot backend action=install”

PXE boot all backend nodes

Done!

Page 7: StackiFest16: Building a Cluster with Stacki - Greg Bruno

BitTorrent-Inspired Package Installation

Stacki

Page 8: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Custom Partitioning

Page 9: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Storage Partition Spreadsheet

Page 10: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Custom Partitioning

We will substitute the “os” pallet with the full CentOS 6.7 distribution◦“stack list storage partition”◦“stack load storage partition file=partition.csv”

Prep the host for reinstall◦“stack list host partition”◦“stack remove host partition backend-0-0”◦“stack set host attr backend-0-0 attr=nukedisks value=true”◦“stack set host boot backend-0-0 action=install”

Page 11: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Adding a Pallet

Page 12: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Adding CentOS to Default Box

We will substitute the “os” pallet with the full CentOS 6.7 distribution

◦“stack list pallet”◦“stack add pallet CentOS*iso”◦“stack enable pallet CentOS”◦“stack disable pallet os”

Page 13: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Create a New Box with CentOS

Making a new box◦“stack list box”◦“stack add box centos”◦“stack enable pallet CentOS box=centos”◦“stack enable pallet stacki box=centos”

Assign a host to a new box◦“stack list host”◦“stack set host box backend-0-0 box=centos”

Page 14: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Boxes

Stacki Pallet

CentOS

CentOS PalletOS Pallet

Stacki Pallet

Default

Page 15: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Boxes

OS Pallet

Stacki Pallet

Default

Stacki Pallet

CentOS

CentOS Pallet

backend-0-0

backend-0-1

Page 16: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Why is this hard and important?

Page 17: StackiFest16: Building a Cluster with Stacki - Greg Bruno

The “Step 0” ProblemCheck namenodes are

empty Format/start HDFS

Create all directories

Create all metastores

Start services (Hbase, Hive, Oozie, Sqoop,

Impala, etc)

Deploy client configuration Configure database

Setup/assign monitors (activity, services, and host)

Test database connections

Validate/resolve hostnamesConsistent host timezones

No bad kernel versions running

(CDH) version consistency

Java version consistencyDaemons versions consistency

Mgmt Agents versions consistency

Host specification/SSH ports

MUCH MORE …

DHCP Server/Client setup TFTP/PXE configuration

Server OS installation

Node OS Install

RAID configuration

Boot configuration System/data disk partitioning

Monitoring system setup and config

Lights Out/IPMI setup

User accounts added and syncedSSH keys on all hosts

Network node configuration

Config Mgmt install and configuration

Route configurationOS upgrades/updates

Site specific software and configuration

Host specification/SSH ports

Security

Firewall setupCluster Mgmt utility Database install and config

Multiple network configPackage installation MUCH MORE …

Page 18: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Clusters are Different

Adding new servers does require coordination

Newly added servers must:• Have same software stack as original

servers• Have same configuration as original

servers• Know about original servers

And, original servers must:• Know about new servers

Result: The management complexity added to the Operations staff is “exponential”

Page 19: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Exponential Complexity

Page 20: StackiFest16: Building a Cluster with Stacki - Greg Bruno

The Pain Curve

Page 21: StackiFest16: Building a Cluster with Stacki - Greg Bruno

The Pain Threshold

The pain threshold differs for every organization

Function of:• cluster(s) size• number of people in Operations• Operations staff cluster expertise

Page 22: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Moore’s Law

Page 23: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Moore’s Law and Infrastructure Value

Page 24: StackiFest16: Building a Cluster with Stacki - Greg Bruno

What it Means for You

Page 25: StackiFest16: Building a Cluster with Stacki - Greg Bruno

Time is Money

The clock starts ticking when hosts land on your loading dock

Without your applications online, you have an paper weight that consumes power, cooling, and management’s attention