diff --git a/getting-started.ipynb b/getting-started.ipynb new file mode 100644 index 0000000..6ed2023 --- /dev/null +++ b/getting-started.ipynb @@ -0,0 +1,100 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# NAS Drives: CMR/SMR, Failure Rates & Specs\n", + "\n", + "Exploring the dataset of 140+ NAS and enterprise hard drives - CMR vs SMR classification, real-world failure rates from Backblaze Drive Stats, and full specs." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "df = pd.read_csv('/kaggle/input/datasets/nettrust/nas-drives-cmrsmr-failure-rates-and-specs-2026/drives-2026-06-17.csv')\n", + "print(f\"{len(df)} drives | {df['brand'].nunique()} brands | {df['line'].nunique()} product lines\")\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## CMR vs SMR breakdown\n", + "\n", + "SMR drives use shingled recording to pack more capacity - but they stall under sustained writes of a RAID rebuild, which can drop them from the array mid-rebuild." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df['recording_tech'].value_counts()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## SMR drives to avoid in a NAS/RAID array" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[df['recording_tech'] == 'smr'][['brand', 'line', 'model', 'capacity_tb']].sort_values(['brand', 'capacity_tb'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Most reliable drives (Backblaze annualized failure rate, lowest first)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df[df['afr_pct'].notna()][['brand', 'line', 'model', 'capacity_tb', 'recording_tech', 'afr_pct', 'reliability_drive_count']].sort_values('afr_pct')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Data & API\n", + "\n", + "Full dataset, always up to date: [nasdisks.com/data/](https://www.nasdisks.com/data/)\n", + "\n", + "License: CC BY 4.0 for specs and CMR/SMR. Failure rates derived from [Backblaze Drive Stats](https://www.backblaze.com/cloud-storage/resources/hard-drive-test-data) - credit Backblaze when using." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.12.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}