技術

Feedback ChampuruからZenBackに

ちょっと前ですがTwitterがバージョンが変わり認証が変更されました。その影響で利用していた「Feedback Champuru」というプラグインが上手く動かなくなってしまっていました。

とは言え、修正方法を記載してくれている人もいて普通に使用していたのですがなぜか2重にコメントが登録されてしまったり。サイト側にもその旨書かれていますね。

ちょっと少ないコメント欄が更に2重で出てくるのも寂しいのでちょっと久しぶりにZenbackを入れてみたいと思います。

変更方法は簡単ですサイトで貼り付けるためのコードが作れるのでその内容を comment.php の一番下にZenbackのコードを追加しています。

購入情報が同期されない Roguer

という感じでコメント欄が賑わいます。暫く使ってみて重そうなら辞めたいと思います。なるべく他サイトへのリンク(というか読み込み)をしないほうがサイトが軽くなっていいので(^^;

先日のRSSの件でシェアリンク用の「Shareaholic」というプラグインを外したのでその代替の意味も兼ねて使ってみます。

Feedbunnerをやめて、Feedlyへの登録ボタンを設置しました

さて、GoogleReaderから他のRSSリーダに色々移行していることだと思いますがやっぱりFeedlyが多いのですかね?

FeedBurnerをやめてサイトでのRSSを配信します。

これにともなって幾つかの変更を行いました。

  • Feedburner / FeedSmith を停止
  • Shareaholic / (RSSにもJavascriptが吐出されてエラーになっていたため)を停止

次に、現行のFeedBurner経由でRSSを参照していただいていると思うためRSSのフッターにお知らせを表示するように設定を行います。こちらもプラグインで実装できるようなので追加してみます。

  • RSS Footer / こちらの機能でFooterにRSSが変更に成る旨を連絡しておきます。ついでにFeedlyのボタンも付けておきます。
    RSS Footer Configuration Roguer WordPress

Feedburnerはやめてもリダイレクトされるらしい

確認がとれているわけではないのですが Ozpaさんのサイトから

という情報を見ることが出来ました。私はまだ停止していないのですがそのうちに削除しておきたいと思います。

しれっと書いていますがRSSがエラーになっていたのはちょっとショックです

Shareaholicプラグインがエラーの原因だったのですが、、FeedBurner経由では見れたり見れなかったりしている感じだったみたいですね。いつの頃からは不明ですがもしかしたら配信もできていなかったのかもしれません。そのことに気がつけて動くようになったのだけでも価値があったと思います。

せっかくなのでサイトの方にもFeedlyのボタンを暫く付けておきます。

feedly. your news. delivered.

色々な手段で登録ができますがこの機会に登録をしてもらうためにちょっとボタンを設置してみました。 Feedly 自身がボタンを作るサイトで簡単にHTMLを作ることができるのでボタンを作ってサイトのウィジェットとして登録をしてみました。

Roguer

Google Reader が終了したので Feed をどうするか悩む

Google Reader が界隈では嘆く声も多い中、身の回りでは誰も使っているユーザがいない状況にいる @tokida です。

さて、Googleと言えばFeedburnerも取り込んで久しいですがこちらの方もどうなるか先がわからないのでやめたという人も多く見ます。と入っても現状あまり更新していないこのブログの Feed を変更すると誰も見に来てくれ内容がきがしてなかなか切り替えられません。

切り替えるとすると大体のサービスにするか、ブログの中(うちの場合 WordPress の機能)で配信するかになりますね。正直 Feeedburnerがまだ終了となったわけではないので大体のサービスもどうなるかわからないのでやっぱり自サイトからの配信という選択肢になりあそうですね。

レポート フィード購読者

現状どんな感じなのかちょっと見てみました。1393人もの人に購読登録を一度はしていただいているということで非常にありがたいですね、先日からまったく更新してないので28人の方にしか記事を見ていただけてないですが(^^;

GlusterFS を Ubuntu 上で構成してみる(on Cloudn)

ちょっとスペースがあるのでCloudn上の仮想サーバでUbuntuサーバを起動してその上にGlusterFSを作ってみます。

  • cloudn はNTTコミュニケーションのパブリッククラウドです。代替最小のノードで980円/月転送量が要らないのでパッと遊ぶときには便利です。

サーバの用意

この辺りを見るととりあえず動くだけであればメモリ1Gほどあれば良いみたいなので t1.micro でいきたいのですがこれは 0.5GRAMなんですよね。その上になると 2Gになってしまうのでとりあえず t1.micro で進めてみます。

Cloudn Compute

またOSもRedhat系が多いのでここではUbuntuで実施してみます。

構成は以下のように進めて行きたいと思います。

  • gluster01
  • gluster02
  • 利用クライアント:chance

これらをパブリッククラウド上に構成してみます。ディスクとしては gluster01/02にそれぞれディスクを40Gづつ追加して(別ディスク扱い)そこに分散ドライブを作成したいと思います。

GlusterFSの導入

手順は省きますが、このサーバは Ubuntu 12.10 です。とりあえずおまじないのごとく apt-get update / apt-get upgrade をしておきます。

以下のコマンドでレポジトリに追加

# apt-get install python-software-properties software-properties-common
# add-apt-repository ppa:semiosis/ubuntu-glusterfs-3.3
# apt-get update

次にパッケージの導入をします

# apt-get install glusterfs-server glusterfs-client

次に起動の設定

# update-rc.d glusterfs-server defaults

以上で完了です。
プロセスはこんなかんじでした

root@gluster01:~# ps -ef | grep gluster
root     21929     1  0 11:17 ?        00:00:00 /usr/sbin/glusterd -p / var/run/glusterd.pid

ディスクの作成

ディスクを追加してみます。Cloudn上から40Gのディスクを作成して先ほどの gluster01にアタッチします。fdisk /dev/vdb ですべて1パーティションのLVM領域として確保します。また参考しているドキュメントにXFSでの利用が記載されていたのでその手順に従いたいと思います。

パーティションの作成

fdisk /dev/vdb か Partedコマンドなどでパーティションを作ります。タイプは8e(LVM)で作ります。

Disk /dev/vdb: 42.9 GB, 42949672960 bytes
16 heads, 63 sectors/track, 83220 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x53d37261

Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048    83886079    41942016   8e  Linux LVM

VGからLVまでの作成

ざっくりコマンドだけを記載していますが。基本的には通常通りLVM->PV->VG->LVと作っていけば問題ありません。

root@gluster01:~# pvcreate /dev/vdb1
  Writing physical volume data to disk "/dev/vdb1"
  Physical volume "/dev/vdb1" successfully created
root@gluster01:~# vgcreate vg_data /dev/vdb1
  Volume group "vg_data" successfully created
root@gluster01:~# lvcreate -n lv_data -l 80%VG vg_data
  Logical volume "lv_data" created

XFSでフォーマットを行う

導入初期だとパッケージが不足していたのでXFS用のモジュールの導入も一緒に実施します。

# apt-get install xfsprogs
root@gluster01:~# mkfs.xfs -i size=512 /dev/vg_data/lv_data
meta-data=/dev/vg_data/lv_data   isize=512    agcount=4, agsize=2096896 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=8387584, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=4095, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

fstabにエントリーの追加

/dev/mapper/vg_data-lv_data /brick xfs defaults 0 0

マウントディレクトリの作成とマウント

root@gluster01:~# mkdir /brick
root@gluster01:~# mount /brick
root@gluster01:~# df
Filesystem                  1K-blocks    Used Available Use% Mounted on
/dev/mapper/localhost-root   13123096 1242896  11213576  10% /
udev                           242108       8    242100   1% /dev
tmpfs                          100648     304    100344   1% /run
none                             5120       0      5120   0% /run/lock
none                           251620       0    251620   0% /run/shm
none                           102400       0    102400   0% /run/user
/dev/vda1                      233191   29080    191670  14% /boot
/dev/mapper/vg_data-lv_data  33533956   32944  33501012   1% /brick

この/brickというディスクのエリアをGlusterFSの領域として利用します。実際に物理で作る場合にはこの辺りをローカルのRAID6などで保護しながらということに成るかと思います。

ノードの追加

上記の手順でもう一台同じ物を作ります。gluster02として作成します。サーバ側ではなくクラウドエヌなどの仮想環境で行う場合ネットワークの設定があるので確認します。

利用されるポート番号は、TCPポート111、24007、24008、24009以降(24009 + すべてのボリュームのbricksの数)になります。

また今回は特に設定がされていないですが ufw や iptables と言ったものでもフィルタリングされる可能性があるので注意です。体感的にぱっと返答がなくてTimeoutするような感じで動くものはたいていはFirewallの機能でブロックされています。

登録方法

管理コマンドは gluster になります。対話式で制御できるので実施していきます。

    gluster> peer probe gluster02
    Probe successful
    gluster> peer status
    Number of Peers: 1

    Hostname: gluster02
    Uuid: 1dee20d6-73e4-4531-a358-e201531ec4bf
    State: Peer in Cluster (Connected)

ボリュームの作成

どのような構成で作るかを決めて実施します。

上記のリンクのように複数の組み合わせがあるので適切なものを選んでいきます。

  gluster> volume create rvol replica 2 gluster01:/brick gluster02:/brick
    Creation of volume rvol has been successful. Please start the volume to access data.
  gluster> volume info

    Volume Name: rvol
    Type: Replicate
    Volume ID: 35531397-94b0-4fde-804f-a7af5dd37ddd
    Status: Created
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: gluster01:/brick
    Brick2: gluster02:/brick


  gluster> volume info rvol

    Volume Name: rvol
    Type: Replicate
    Volume ID: 35531397-94b0-4fde-804f-a7af5dd37ddd
    Status: Started
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: gluster01:/brick
    Brick2: gluster02:/brick


    Status of volume: rvol
    Gluster process  Port   Online  Pid
    ------------------------------------------------------------------------------
    Brick gluster01:/brick   24009  Y       23014
    Brick gluster02:/brick   24009  Y       22504
    NFS Server on localhost  38467  Y       23020
    Self-heal Daemon on localhost    N/A    Y       23026
    NFS Server on gluster02  38467  Y       22510
    Self-heal Daemon on gluster02    N/A    Y       22516

クライアント側の設定

ここまで来てようやく気がついたのですがCIFSで繋ぐ場合には別途sambaを起動する必要があるのですね。Redhat Storege Server の場合にはこの辺りの設定も入っているみたいですが glasuterFS を直接実施する場合には、Native クライアントか NFS で利用する必要があるみたいです。

準備

更に別のサーバからネイティブクライアントで接続をしてみます。先ほどのAPTパッケージの登録を行った後にクライアントを導入します。またNFSのモジュールも不足するので事前に導入しておきます。

# apt-get install glusterfs-client
# apt-get install nfs-common

mount -t glusterfs gluster01:/rvol /mnt/native

mount -t nfs -o vers=3 gluster01:/rvol /mnt/nfs

所感

ネイティブクライアントもNFSもともに問題なく利用できることがわかりました。ネイティブのクライアントの場合には片側が停止している状態でも問題なく利用することが出来ました。ただし復旧後すぐにデータが復元されないんで同期には暫くかかっていました。NFSなどの接続では停止した場合ノードが見えなくなるためです。

Sambaを利用していなのでまた後ほどするにして色々止めたりすると動作が面白いですね。実際にどの程度利用されているかは不明ですが使ってみたいなという感じですね。

スケールアウト型のNASとして考えた場合どの程度が制約があるのかわかりませんが増やすこと自体は簡単にできそうなのですが構成パターンとか考えないと難しそうですね。

参考書

SEO対策に同一カテゴリの最新情報を載せるようにする

SEO対策で、Wordpress等の投稿ページの場合には同じカテゴリーの情報を出した方が良いという事でしたのでちょっと修正をしてみました。

スクリーンショット 2012 11 26 23 24

こちらのこの情報を参考にちょっとずす修正をしてみたいと思っています。

ブログでめしを食うために行っている5つのSEO | 和洋風KAI

手始めに、「2. ブログでジャンルを絞れないならページで絞る。」という題目にあるようにこのサイトも情報がぐちゃぐちゃしてきているので整理したいとおもうのですがその前にここに記載されている事をしてみます。

同一カテゴリの最新情報を実現するプラグイン

サイドバーの「最新情報」は除いて、新たに「同一カテゴリーの最新情報」を表示するためのプラグインに変更しました。また書かれているように関係ないとおもわれるウィジェットを取り除いてすっきりさせました。

これらには二つのプラグインを用いて実現しています。

Widgets of Posts by Same Categories
 

これは同一カテゴリーの最新情報を出す事が出来ます。表示形式は若干修正してたのウィジェットに合わせています。

Widget Logic

もう一つこっちのプラグインはウィジェットを表示するページ等を制御する事が出来ます。トップページの場合には今までの最新情報を表示するように指定しています。またその他色々消したやつはトップページでは表示するようにしてみました。

という事で、なにかこれが評価がでるのか分かりませんが多少なりともあるといいですね。

上部へスクロール