「Ubuntu」と一致するもの

DRBD9で分散ストレージを作る

Ubuntu 18.04LTSでDRBD9の分散ストレージを作るメモです。

DRBD(Distributed Replicated Block Device)とは、Linux上でネットワークを介したストレージをリアルタイムにミラーリングするためのソフトウェアです。
何が出来るかと言えば、2台〜4台のコンピュータ間のストレージで完全に同期を取ることが出来ます。
Active/Standbyで動作しているActive側でストレージに書き込みが行われると、ネットワークを介してSlave側のストレージにも書き込みが行われることで、データが同期されるという仕組みです。
また、同期はブロック単位でおこなわれるので、スライス(パーティション)がそっくり同期されます。その為、ファイルシステムに依存しない事も特徴です。(ファイル単位での同期ならrsync使うとか、他にも方法は色々あるけれど)

通常クラスタ構成のシステムでは共有ストレージなど「高価なハードウェア」を使うか、レプリケーションソフトで定期的に同期を行う方式が一般的だと思います。レプリケーションソフトの同期では同期のタイミングによって時間差が生まれてしまうため、同期が取れていないタイミングが発生しますが、DRBDではブロック単位の書き込みをそのままネットワークを介して行いますのでほぼリアルタイムの同期が行えます。
(市販のクラスタソフトウェアでも似たような仕組みを備えている製品があるようだ・・・)

Linuxではクラスタ自体はPacemaker(旧 Heartbeat)で行えますので、複数のコントローラ、複数のパスを備えた高価なストレージを使わずにクラスタのシステムが作れる事になります。とはいえネットワークを介して同期するってことは、ネットワークに相当負荷が掛かるということですので、高パフォーマンスを要求されると厳しい気がします。
仕組み自体は昔からあった(カーネル2.6の頃・・・2009年位?・・・に生まれたらしい)のですが、これまで触ってこなかったので、今更ながらちょっと触ってみましょうという感じです。

Ubuntuインストール時にやること(2)

前に書き漏れていた項目

ロケール設定
日本語表示にする

$ sudo localectl list-locales

$ sudo apt-get install language-pack-ja

$ sudo update-locale LANG=ja_JP.UTF-8

タイムゾーン設定
JSTにする

$ sudo timedatectl list-timezones

$ sudo timedatectl set-timezone Asia/Tokyo

systemd-timesyncdサービスの停止
ntpdが動かなくなるので止める。

$ sudo systemctl stop systemd-timesyncd.service

$ sudo systemctl disable systemd-timesyncd.service

自宅サーバ更新(3)

前回の続き。

HBAというかRaidカードの部分ですが、型落ち(世代前の製品)が安く手に入るようになってきたので、ハードウェアRAIDカードを使う方針です。


色々検討はしたのですが、
  • HDDケースでRAID機能を搭載している製品を使う
  • ESXiのゲストOSにFreeNASを載せて、パススルーでHDDに直接アクセスさせる。その上で、ソフトウェアRAIDを組んでiSCSIまたはNFSでESXiにストレージを見せる方法
  • ハードウェアRAIDカードを搭載する方法
  • ゲストOSの中でRAIDを組む

さて、どれが良いのでしょうか。

postfixでSPF判定

Ubuntu 16.04 LTSのpostfixに「SPF判定」を組み込んでみるテスト

Postfix-policyd-spf-perlをインストール
#apt-get install postfix-policyd-spf-perl libmail-spf-perl
master.cfにspf判定を追加
#vi /etc/postfix/master.cf
policy-spf unix - n n 0 0 spawn
user=nobody argv=/usr/sbin/postfix-policyd-spf-perl
main.cfのsmtpd_recipient_restrictionsにpolicy-spfを追加
#vi /etc/postfix/main.cf
smtpd_recipient_restrictions = <元々書かれていたポリシー> check_policy_service unix:private/policy-spf
Postfixで設定ファイルをリロード
# postfix reload

と手順的には難しくないです。

実際テスト環境でメールヘッダがどうなるかというと

Received-SPF: none (lab3.local: No applicable sender policy available) receiver=ns.lab.local; identity=mailfrom; envelope-from="root@lab3.local"; helo=mail.lab3.local; client-ip=10.3.1.1
という具合にReceivedヘッダの途中にReceived-SPFというヘッダが記録されてきます。
かつ、この場合SPFレコードがないホストからメールが来たため、判定がnoneとなっています。

IPv6をDisableする
/etc/sysctl.confに以下の設定を追加する

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

NICのデバイス名を伝統的な名前に戻す(ens160 → eth0)

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
ほぼこれだけではダメなので
/etc/default/grubに以下の設定を行う

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

GRUBを書き換える

sudo grub-mkconfig -o /boot/grub/grub.cfg