created: 2022-10-30T01:26:39.480Z

RaspberryPi で tmpfs をマウントする ansible の記述

録画してできる m2ts ファイルを microSD に書いてると半年くらいでディスクがダメになるということがわかっているので、その m2ts ファイルを microSD ではなくメモリ上(tmpfs)に書き出すようにする。m2ts ファイルは mp4 エンコードが済んだら逐次削除するようになっているので tmpfs があふれることはない。

前回までのあらすじ

m2ts ファイルのエンコード先である mp4 ファイルは samba 経由で RAID1 のディスクに書き込まるようになっている。

ansible の実装

  • /mnt/ramdisk に tmpfs をマウント
  • tmpfs 容量は2GB(2g)までとするが、10分くらいの番組までならこれでまかなえる
  • epgstation の録画先ディレクトリを ramdisk のシンボリックリンクで差し替え
    - name: prepare /mnt/ramdisk
      ansible.builtin.file:
        path: "{{ item }}"
        state: directory
        mode: '0755'
        owner: pi
        group: pi
      with_items:
        - /mnt/ramdisk
        - /mnt/ramdisk/docker-mirakurun-epgstation
    - name: mount tmpfs on /mnt/ramdisk
      ansible.posix.mount:
        src: tmpfs
        path: /mnt/ramdisk
        fstype: tmpfs
        opts: "rw,nodev,nosuid,size=2g"
        state: mounted
      notify: mount fstab all
    - name: create symlink recorded point to ramdisk
      file:
        src: /mnt/ramdisk/docker-mirakurun-epgstation
        dest: /opt/docker-mirakurun-epgstation/recorded
        state: link
      notify: restart docker-mirakurun-epgstation

参考