• 投稿日
  • Raspberry Pi 3および4で使うSDカード(microSDカード)の選び方 ― 2021年新春

    こんにちは、Raspberry Piを6台所有しているソラコムの松下(Max)です。

    Raspberry Piはセンサーと接続できる小型のコンピューターです。IoTに必要な機能がこれ一つに入っていることから、私もIoT技術の検証や皆さんにお見せするデモの時に良く利用しています。

    Raspberry Piを使うためには、本体だけでなくOSやソフトウェアを入れておくためのmicroSDが不可欠です。しかし、メーカーや品数も多く、加えて製品のライフサイクルが早いことから選ぶ方のも苦労します。

    ここでは、私がRaspberry Piで使用するmicroSDをどのように選んでいるのかを、2021年新春時点の情報としてご紹介します。

    Raspberry Piとは?そして、SORACOMとの関係

    Raspberry Piは小型のコンピューターです。基板上にあるピン(GPIO ピン)にセンサーを付けることができ、また、Wi-Fiや有線LANといったネットワーク機能も標準で装備しておりクラウド連携も容易な事から、IoTの制御用して選択されることが多いデバイスです。

    Raspberry Pi 3 model B+ 外観

    SORACOMはIoTプラットフォームとして3G/LTEといったモバイル通信(セルラー通信)を中心に、クラウドと容易に連携できるサービスを提供しています。そのため、Rasperry Pi とSORACOMを組み合わせることで、Wi-Fiや有線LANでは難しかったような現場でもRaspberry Piをクラウドにつなげることが可能となり、Raspberry Piの活用の幅を広げることができます。

    Raspberry PiとSORACOMの組み合わせは事例があります。興味のある方はRaspberry Pi Industry User Conferenceで発表した資料をご覧ください。また、Raspberry PiからSORACOMを利用する方法も公開しています。USBドングル型モデムを利用した3G/LTE通信の方法や、Raspberry PiとUSBカメラを組み合わせたIoT体験キットをご覧ください。

    Raspberry Pi に欠かせない「microSDカード」、その選び方

    冒頭でもご紹介しましたが、Raspberry Piは本体の他にOSやソフトウェアを入れるための記録メディアが不可欠です。Raspbery PiではmicroSDカード(microサイズのSDカード、以下microSD)を標準でサポートしています。
    microSD自体については、カメラやスマートフォンなど、様々な場所で使われている記録メディアとして、皆さんもご存知ではないでしょうか。基本的に同じものです。

    microSDカード

    Raspberry Pi 4 ではUSB接続のストレージからの起動もサポートされましたが、Raspberry Pi 4 本体の書き換えを行う必要があり、1度はmicroSDからの起動が必要となります。

    今、Raspberry Pi で使うなら「容量=32GB、速度=U1」

    Amazon.co.jp等の通販サイトで「microSD」と検索してみてください。非常に多くのmicroSDが見つかるでしょう。
    多くのメーカーがmicroSDを作っており、また、容量や読み書き速度といった仕様が多岐にわたるため、このような商品数になります。こうなってくると、どのmicroSDを使えばよいのか選ぶ必要が出てくるわけです。

    結論から言えば、容量=32GB、速度=UHSスピードクラス1(U1)というmicroSDが現在の選択肢となります。例えばSanDisk社の32GB U1といったものがあります。

    これは、Raspberry PiのOSである Raspberry Pi OSが8GB以上の容量を必要とすることに加え、実用的に使うために必要なmicroSDの読み書き速度、そして金額や入手性を検討した結果となります。

    Raspberry Piで使うmicroSDを選ぶときに知っておきたい知識

    ここからは皆さん自身でmicroSDを選ぶ際に知っておきたい知識をご案内します。

    容量64GB以上のmicroSDの取り扱い

    Raspberry Pi のドキュメントFormatting an SDXC card for use with NOOBSによれば、Raspberry Piは64GB以上のmicroSDでも対応しています。Windows 10やmacOSといった最新OSでRaspberry Piの公式インストーラーであるRaspberry Pi Imagerを利用すれば、64GB以上のmicroSDも難なく扱えます。

    しかし、Raspberry Pi Imager以外の方法やWindows 7等といったOSを利用する場合は技術的な手間が必要となることから、どのような環境でも手間なく始めたい場合は32GB以下を選択するのが良いでしょう。

    一方、市場で入手可能なmicroSDの最低容量は年々上がってきており、16GBでも入手が厳しい状況です。現時点では入手性の良い32GBですが、今後は入手が困難になることが予想されます。
    ご自身で利用する場合はともかく、製品への添付などを検討される場合は、64GB以上の際の技術的な手間をどのように解決するのか、もしくは32GB以下を調達し続けるといった判断が求められるでしょう。技術的な手間が今後不要となる可能性もあるため、先で紹介したRaspberry Piのドキュメントの定期な確認や、動作環境の変化を注視することも大切です。

    “microSDHC” や “microSDXC” とは?

    microSDの情報を探していると microSDHC や microSDXC という表記を見かけます。これはmicroSDの容量についての規格名です。選択の際には特に意識する必要はありません。

    U1よりも高速なmicroSDの取り扱い

    速度の “UHSスピードクラス1” (以下、U1) がどのような仕様なのか、また他との比較についてはGREEN HOUSE社のページにまとまっていますのでご覧ください。

    U1の他に “10” や “V10” があるけれど、何が違うのか?

    microSDのスピードを表す規格が現在3つあります。それがスピードクラス、UHSスピードクラス、ビデオスピードクラスです。実質の意味は同じです。例えばU1はスピードクラス “10” (CLASS 10 とも言われる)、そしてビデオスピードクラス “V10” と同じ速度となります。”ビデオスピードクラス”と書かれていても、データの記録で利用できます。

    また、UHSの表記には “UHS-I (アルファベットの大文字I)” というものがありますが、これはUHSスピードクラスであるU1とは異なります。UHS-Iというのはバスインターフェイススピード、即ち機器とmicroSD間の通信可能な速度を表しています。実際にその速度で読み書きできる性能を表しているのが、UHSスピードクラスです。そのためmicroSDの仕様に “UHS-I U1″という表記がされることもありますが、注目するのはUに続く数字だけで基本的に問題ありません。

    UHSスピードクラスにはU1の上にU3(ビデオスピードクラスならV30)という速度を出せるものがあります。U3のmicroSDもRaspberry Piで使用できます。私が使っているものとしてはSanDisk社の32GB U3があります。

    U1と比較しても読み込みでは互角、書き込みで約1.5倍ほどU3の方が速く動作しますが、価格は1.5倍ほどU3の方が高くなります。速度比較に使用した情報は、このブログの最後をご覧ください。

    UHSスピードクラス読み込み(秒)書き込み(秒)
    U13.18.6
    U33.05.6
    U3 速度差(U1基準)103%153%
    CLASS 43.5132.4
    CLASS 4 速度差(U1基準)88%7%
    U1とU3の読み書き速度差

    書込み速度は運用時だけでなく、microSDへのOS書き込みの速度にも影響します。そういったことから書き込み速度を重視する場合はU3となりますが、U1でも実用的な速度は確保できます。
    一方、古いmicroSDでありがちなCLASS 4やCLASS 6は速度面で不利なため、今後の利用はU1以上を推奨します。

    microSDは消耗品、故障に備えておく

    microSDは物理的な機構こそありませんが、故障します。microSDは消耗品です。故障要因は主に「不意な電源断」と「書き換え回数」の2つです。

    不意な電源断によるmicroSD内の不整合

    不意な電源断によるmicroSD内の不整合が発生し、システムが破損する可能性があります。こちらの資料では20~30回程度、悪い時には2回目にして破損することもあるそうです。

    対策としてはUPSと呼ばれる予備電源を用いて電源断を感知したら正常にシャットダウンを行うように構成をしたり、microSDを読み取り専用にした上での運用(RAMディスク化)といった方法の他、例えばUSB接続の外付けディスクといったmicroSDとは異なるメディアの利用といった方法が挙げられます。

    microSDの書き換え回数上限

    microSDには書き換えの回数上限があります。
    これはデータの記録に使われている素子(NANDフラッシュメモリ)にデータを正確に書き換えることができる回数に上限があるためです。特に頻繁に書き込みが発生する使用方法では、microSDの寿命が早く来てしまうこともあります。

    この回数はmicroSDで使われている素子の種類で大幅に変わります。これはSLCやMLCといったものがあります。
    (単語の意味やすべての素子の種類はintelのページで解説されています。またNANDフラッシュメモリについてはSSDの寿命とNANDフラッシュメモリ(1/3):「保証書き換え回数」の意味- Qiitaで解説されています。)

    対策としてはRaspberry Pi OSでの書込みの発生源を抑える設定の他に、産業用向けmicroSDの採用を行うといった方法があります。

    産業向けmicroSDは、同じ容量や速度のものでも市販品と比較して金額が3~10倍と高価ではあるものの、書き換え回数や温湿度といった動作環境に高い耐性を持っているため、安心して使うことが可能です。

    市販品がだめかというと、そんなことはありません。皆さんのスマートフォンの中に入っているmicroSDも十分使えているのではないでしょうか。ドライブレコーダーのように、常に書き込みが発生するような場合において特に気をつけたいポイントとして紹介しました。

    故障を前提としたシステム構築

    これまで紹介した対策を行ったとしても、microSDはいつかは故障します。
    そこで、故障を前提としたシステム構成を組むことで万全の態勢を整えることができます。特に「microSD内に固有データを極力持たない」アーキテクチャであれば、故障時も交換だけで済ますことが可能です。

    SORACOMではデータ転送サービス「SORACOM Beam」やクラウドアダプタ「SORACOM Funnel」といったアプリケーション連携サービスを利用することで、クラウドへの接続情報や認証情報をmicroSDではなくSORACOMプラットフォーム上に保管できたり、また、機器や環境に依存する設定情報を外出しするアーキテクチャ例といった、設定をデバイス本体に極力持たないアーキテクチャを採用するのも手です。

    また、運用中に発生するログや固有データについても、通信を利用してクラウドに転送しておく方法が考えられます。その際にSORACOM Airによる3G/LTE/LPWAといった通信の利用で、設置場所のネットワーク環境を考えることなくクラウドへデータ転送できるメリットがあります。

    「国内正規品」「並行輸入品」は保証に影響

    microSDを購入する際に知っておきたいのが「国内正規品」や「並行輸入品」という表記です。並行輸入品は “海外パッケージ” とも書かれますが、同一の型番であれば全く同じ製品です。

    最大の違いは「メーカー保証を受けられるか否か」となります。国内正規品は正規代理店が販売しており、不具合があった時にはメーカーの日本法人で受け付けてもらえますが、並行輸入品はmicroSDの販売事業者が独自に海外で買い付けたものを入しているため、値段が安い場合が多いのですが、日本での保証はかなり厳しいと考えるべきです。
    不具合には “品物違い” も含まれます。よって、購入したが実は型番と異なるものが手元に届いたとしても、メーカーに交換してもらえる可能性は限りなく低いでしょう。特に並行輸入品を購入する場合は気をつけたいポイントです。

    保証は交換用在庫のオペレーションに大きく影響します。
    在庫を極力減らしたいのであれば、国内正規品で都度メーカーに対応いただく方法もあれば、安い並行輸入品を多く調達しておき、交換用在庫を独自に持つ考え方もあります。

    microSDの動作検証方法

    調達したmicroSDは、確実に動くことを確認してから使い始めたいものです。ここでは、私がどういったチェックで判断を行っているかを紹介します。

    もちろん、一番の確認ポイントは読み書きです。できれば全領域を一度読み書きしたいところではありますが、方法や時間にも限りがあるので、ある程度のファイルサイズでもよいので、読み書きをしておくのが良いでしょう。

    私が利用しているのは bonnie++ というストレージ性能測定用ツールです。
    Raspberry Pi OSで簡単にインストールができ、すぐに試せるのが利点です。以下のコマンドでインストールから bonnie++ で2GBの性能測定を行っています。この時あまりにも bonnie++ の実行に時間がかかるようでしたら、ほかのmicroSDの利用を検討した方が良いでしょう。実行時間はRaspberry Pi 3 model B+とUHSスピードクラス1Uの組み合わせで10分程度が一つの目安です。

    $ sudo apt install bonnie++
    $ time bonnie++ -s 2048 -r 512

    過去に使用してきたmicroSD

    ここでは、これまで私がRaspberry Piで利用してきたmicroSDを紹介します。迷った時の判断材料としてご覧ください。

    おわりに

    普段何気なく使うmicroSDですが、調べてみるとその種類の多さや、知っておきたい知識の多さに少し驚いてしまうかもしれません。しかし、一つ一つ丁寧に見ていけば最適なmicroSDを見つけることができます。
    冒頭でも書きましたが、microSDは製品のライフサイクルが早いため、単一のモデルにこだわることなく代替品を準備しておくと良いでしょう。

    最後になりますが、このブログで紹介しているmicroSDは必ずしも当該製品の入手性や動作は保証しておりませんのでご留意いただければと思います。

    みなさんのmicroSD選びの役に立てば幸いです!

    技術情報:スピードクラスによる読み書きの速度比較

    Raspberry Pi 4 model BにRaspberry Pi OSをインストールしたmicroSDを用意し、パッケージ “linux-doc-4.18” (ダウンロードサイズ17.8MB、展開後サイズ63.1MB)を apt-cache search で検索(=読み込み)した時の時間、並びに同パッケージをあらかじめダウンロードしておき、 dpkg -i でインストール(= 書き込み)した時の時間を計測しました。それぞれのコマンド実行前にはページキャッシュを消去しています。

    U1の場合

    • ハードウェア: Raspberry Pi 4 model B
    • OS: Raspberry Pi OS Lite (32-bit) / 2020-12-02
    • microSD : SanDisk / 32GB U1 / SDSQUAR-032G-GN6MN
    $ sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
    $ time apt-cache search linux-doc > /dev/null
    
    real    0m3.102s
    user    0m1.593s
    sys     0m0.322s
    
    $ sudo apt install --download-only linux-doc-4.18
    $ ls -lF /var/cache/apt/archives/linux-doc-4.18_4.18.20-2+rpi1_all.deb
    -rw-r--r-- 1 root root 17759100 Dec  4  2018 /var/cache/apt/archives/linux-doc-4.18_4.18.20-2+rpi1_all.deb
    $ sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
    $ time sudo dpkg -i /var/cache/apt/archives/linux-doc-4.18_4.18.20-2+rpi1_all.deb > /dev/null
    
    real    0m8.638s
    user    0m3.680s
    sys     0m3.036s
    

    U3の場合

    • ハードウェア: Raspberry Pi 4 model B
    • OS: Raspberry Pi OS Lite (32-bit) / 2020-12-02
    • microSD : SanDisk / 64GB U3 / SDSQXAF-032G-GN6MA
    $ sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
    $ time apt-cache search linux-doc > /dev/null
    
    real    0m3.047s
    user    0m1.538s
    sys     0m0.355s
    
    $ sudo apt install --download-only linux-doc-4.18
    $ ls -lF /var/cache/apt/archives/linux-doc-4.18_4.18.20-2+rpi1_all.deb
    -rw-r--r-- 1 root root 17759100 Dec  4  2018 /var/cache/apt/archives/linux-doc-4.18_4.18.20-2+rpi1_all.deb
    $ sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
    $ time sudo dpkg -i /var/cache/apt/archives/linux-doc-4.18_4.18.20-2+rpi1_all.deb > /dev/null
    
    real    0m5.565s
    user    0m3.402s
    sys     0m3.027s
    

    CLASS 4の場合

    • ハードウェア: Raspberry Pi 4 model B
    • OS: Raspberry Pi OS Lite (32-bit) / 2020-12-02
    • microSD : ノンブランド / 16GB CLASS 4
    $ sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
    $ time apt-cache search linux-doc > /dev/null
    
    real    0m3.503s
    user    0m1.588s
    sys     0m0.322s
    
    $ sudo apt install --download-only linux-doc-4.18
    $ ls -lF /var/cache/apt/archives/linux-doc-4.18_4.18.20-2+rpi1_all.deb
    $ sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
    $ time sudo dpkg -i /var/cache/apt/archives/linux-doc-4.18_4.18.20-2+rpi1_all.deb > /dev/null
    
    real    2m12.370s
    user    0m4.416s
    sys     0m4.002s
    

    ソラコム “Max” 松下