kazeno memo

メモとか

Proxmox post install

  • レポジトリの追加

    1. 有償版レポジトリを無効化

      # rm /etc/apt/source.list.d/pve-enterprise.list
      
    2. 無償版レポジトリを追加

      # echo -e "\n# PVE no-subscription repository\ndeb http://download.proxmox.com/debian/pve buster pve-no-subscription" >> /etc/apt/source.list
      
  • fstrimの有効化

    # systemctl enable fstrim.timer && systemctl start fstrim.timer
    
  • サブスクリプションメッセージの無効化

    # sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
    # systemctl restart pveproxy
    

ZFS関連

  • ポイント

    • 先頭に4GBのswapパーティションを作成したい
    • swap on zvolは微妙?
    • ディスクは4K Sector
    • ディスク3個でRAID-5(raidz-1)
  • swapパーティションの作成

    1. gdiskなどでディスクをGPTでフォーマット
    2. swapとzfs用のパーティションを作成
    • swapの暗号化

      swapパーティションは暗号化されるべきです。

      swap用のパーティション/dev/sda1にあると仮定

      # mkfs.ext2 -L cryptswap /dev/sda1 1M
      # echo -e "\nswap\tLABEL=cryptswap\t/dev/urandom\tswap,offset=2048,cipher=aes-xts-plain64,size=256" >> /etc/crypttab
      # echo -e "\n/dev/mapper/swap\tnone\tswap\tdefaults\t0\t0" >> /etc/fstab
      

      コマンドの意味がわからない場合、ArchWikiを参照しましょう。

  • ZFSでRAID5

    1. ディスク固有のby-idを確認

      # ls -lh /dev/disk/by-id/
      lrwxrwxrwx 1 root root  9 Aug 12 16:26 ata-ST3000DM001-9YN166_S1F0JKRR -> ../../sdc
      lrwxrwxrwx 1 root root  9 Aug 12 16:26 ata-ST3000DM001-9YN166_S1F0JTM1 -> ../../sde
      lrwxrwxrwx 1 root root  9 Aug 12 16:26 ata-ST3000DM001-9YN166_S1F0KBP8 -> ../../sdd
      lrwxrwxrwx 1 root root  9 Aug 12 16:26 ata-ST3000DM001-9YN166_S1F0KDGY -> ../../sdb
      
    2. ZFS poolの作成

      # zpool create -f -o ashift=12 tank raidz1 <ディスクのby-id>
      
      • swapパーティションを別に作成した場合by-idの直後に-part2のようにパーティションを指定

        //例えば
        ata-ST3000DM001-9YN166_S1F0KDGY-part2
        
      • 4K Sectorの場合-o ashift=12を指定

      • /dev/sdaなどのデバイス名を使用すると、ディスク構成を変えたときにエラーが出る可能性があるのでby-idを使う

    3. 確認

      # zpool status
      
  • ZFSの最適化

    • relatime

      # zfs set relatime=on <pool>
      
    • 圧縮

      # zfs set compression=lz4 <pool>
      
    • ZFSが使用するメモリを制限

      /etc/modprobe.d/zfs.conf

      options zfs zfs_arc_max=8589934592
      

      バイト単位で指定

      • 8 GB = 8589934592 Byte
      • 16 GB = 17179869184 Byte
      • 24 GB = 25769803776 Byte
      • 32 GB = 34359738368 Byte

      変更するたびにinitramfsを更新する必要がある

      # update-initramfs -u
      
  • その他

    • スクラブ

      定期的なスクラブが推奨されている

      全ファイルをチェックする様なやつ

      # zpool scrub <pool>
      

      定期的な実行はcronなどを使う(週1で良い)

      systemd用のserviceとtimerもある

      https://github.com/lnicola/systemd-zpool-scrub

    • イベントに関するメールを送信

      # apt install zfs-zed
      # vi /etc/zfs/zed.d/zed.rc
      ZED_EMAIL_ADDR="root"
      # systemctl enable zfs-zed && systemctl start zfs-zed
      

      zfs-zedはrootにメールを送信。rootのメールはproxmoxに設定したメールアドレスに転送される。