Category Archives: Linux

Ubuntu:VMware上のUbuntuのディスク容量をオンラインでそのまま拡張する手順

いつも忘れるので備忘録
VMwareの操作でディスクの拡張を行ってからの話
100Gから160Gにアップ

パーティションをリサイズ

/home/nekolove% sudo parted /dev/sda
GNU Parted 2.3
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) print
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 172GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos

番号  開始    終了   サイズ  タイプ    ファイルシステム  フラグ
 1    1049kB  256MB  255MB   primary   ext2              boot
 2    257MB   107GB  107GB   extended
 5    257MB   107GB  107GB   logical                     lvm

(parted) resizepart 5
終了?  [107GB]? 172GB                                                     
(parted) print                                                            
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 172GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos

番号  開始    終了   サイズ  タイプ    ファイルシステム  フラグ
 1    1049kB  256MB  255MB   primary   ext2              boot
 2    257MB   172GB  172GB   extended
 5    257MB   172GB  172GB   logical                     lvm

(parted) quit                                                             
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。  

/home/nekolove% sudo reboot

容量とかもろもろをチェック

/home/nekolove% sudo lvdisplay 
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/root
  LV Name                root
  VG Name                ubuntu-vg
  LV UUID                jag9O5-MfJW-NNAo-hUkr-rEcl-UOjs-oNlAV2
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-07-18 02:03:11 +0900
  LV Status              available
  # open                 1
  LV Size                97.41 GiB
  Current LE             24937
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
   
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/swap_1
  LV Name                swap_1
  VG Name                ubuntu-vg
  LV UUID                pKTMYk-FSKy-3vbA-nGVW-K6Au-QF2N-tS5mx7
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-07-18 02:03:11 +0900
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

割当先を確認、dfから引っ張ってきてもよい

/home/nekolove% sudo lvdisplay 
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/root
  LV Name                root
  VG Name                ubuntu-vg
  LV UUID                jag9O5-MfJW-NNAo-hUkr-rEcl-UOjs-oNlAV2
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-07-18 02:03:11 +0900
  LV Status              available
  # open                 1
  LV Size                97.41 GiB
  Current LE             24937
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
   
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/swap_1
  LV Name                swap_1
  VG Name                ubuntu-vg
  LV UUID                pKTMYk-FSKy-3vbA-nGVW-K6Au-QF2N-tS5mx7
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-07-18 02:03:11 +0900
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

空き領域全部

/home/nekolove% sudo lvextend -l +100%FREE /dev/ubuntu-vg/root
 Extending logical volume root to 157.76 GiB
 Logical volume root successfully resized
 /home/nekolove%

ファイルシステムのリサイズ

/home/nekolove% sudo resize2fs /dev/ubuntu-vg/root
 resize2fs 1.42.9 (4-Feb-2014)
 Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
 old_desc_blocks = 7, new_desc_blocks = 10
 The filesystem on /dev/ubuntu-vg/root is now 41355264 blocks long.

結果、こうなりました

/home/nekolove% df
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-root  156G   68G   82G  46% /
none                         4.0K     0  4.0K   0% /sys/fs/cgroup
udev                         2.0G  4.0K  2.0G   1% /dev
tmpfs                        395M  1.4M  394M   1% /run
none                         5.0M     0  5.0M   0% /run/lock
none                         2.0G   80K  2.0G   1% /run/shm
none                         100M   36K  100M   1% /run/user
/dev/sda1                    236M   68M  156M  31% /boot

blog:ngx_pagespeedはやっぱダメだった

仕組み的に早くなってバンザーイだと思ったngx_pagespeedですが
結局NGINXのCache使った方が死ぬほど早かったという罠

ngx_pagespeed on;

# ab -n 1000 -c 100 http://www.nekolove.jp/wp/
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
 Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.nekolove.jp (be patient)
 Completed 100 requests
 Completed 200 requests
 Completed 300 requests
 Completed 400 requests
 Completed 500 requests
 Completed 600 requests
 Completed 700 requests
 Completed 800 requests
 Completed 900 requests
 Completed 1000 requests
 Finished 1000 requests
Server Software: nginx
 Server Hostname: www.nekolove.jp
 Server Port: 80
Document Path: /wp/
 Document Length: 28383 bytes
Concurrency Level: 100
 Time taken for tests: 18.597 seconds
 Complete requests: 1000
 Failed requests: 2
 (Connect: 0, Receive: 0, Length: 2, Exceptions: 0)
 Total transferred: 28766106 bytes
 HTML transferred: 28383106 bytes
 Requests per second: 53.77 [#/sec] (mean)
 Time per request: 1859.710 [ms] (mean)
 Time per request: 18.597 [ms] (mean, across all concurrent requests)
 Transfer rate: 1510.55 [Kbytes/sec] received
Connection Times (ms)
 min mean[+/-sd] median max
 Connect: 14 28 98.4 17 1603
 Processing: 84 1762 1080.2 1406 4675
 Waiting: 68 1725 1072.0 1376 4646
 Total: 98 1790 1095.5 1428 5885
Percentage of the requests served within a certain time (ms)
 50% 1428
 66% 2482
 75% 2979
 80% 3027
 90% 3181
 95% 3363
 98% 3582
 99% 3617
 100% 5885 (longest request)
 #

ngx_pagespeed off;

# ab -n 1000 -c 100 http://www.nekolove.jp/wp/
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
 Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.nekolove.jp (be patient)
 Completed 100 requests
 Completed 200 requests
 Completed 300 requests
 Completed 400 requests
 Completed 500 requests
 Completed 600 requests
 Completed 700 requests
 Completed 800 requests
 Completed 900 requests
 Completed 1000 requests
 Finished 1000 requests
Server Software: nginx
 Server Hostname: www.nekolove.jp
 Server Port: 80
Document Path: /wp/
 Document Length: 88049 bytes
Concurrency Level: 100
 Time taken for tests: 8.838 seconds
 Complete requests: 1000
 Failed requests: 0
 Total transferred: 88367000 bytes
 HTML transferred: 88049000 bytes
 Requests per second: 113.15 [#/sec] (mean)
 Time per request: 883.754 [ms] (mean)
 Time per request: 8.838 [ms] (mean, across all concurrent requests)
 Transfer rate: 9764.69 [Kbytes/sec] received
Connection Times (ms)
 min mean[+/-sd] median max
 Connect: 16 60 264.5 24 3047
 Processing: 100 716 543.9 559 3994
 Waiting: 15 58 97.9 25 1663
 Total: 117 776 612.7 595 4952
Percentage of the requests served within a certain time (ms)
 50% 595
 66% 817
 75% 994
 80% 1110
 90% 1491
 95% 1932
 98% 2560
 99% 3298
 100% 4952 (longest request)
 #

これアカンやつや・・・っていうか処理能力が全般で倍違うとわ
もし使い続けるなら使用するフィルターを調整しないとダメだわね
NGINXのキャッシュのあるなしは関係なくてngx_pagespeedが動いてると性能が低下する模様
どこかにボトルネックがあるのか、合わないのか・・・

nginx:ngx_pagespeedを追加してビルドする(Ubuntu)

nginxのstableバージョンが1.6になったためリポジトリがアップデートされた
そのためバージョンが低いppaの野良ビルドが上書きされてしまい、
pagespeedが無効になってしまったので面倒ながら自分でビルドすることにした
通常のビルド手順だとパッケージ管理から外れてしまい、メンテナンスが厄介になるので
debianパッケージを作成することに。

まずは準備
ppaからパッケージをダウンロード出来るようにする
追加するppaはnginx公式によるリポジトリ(Ubuntu公式とは別)

sudo aptitude install python-software-properties
sudo add-apt-repository ppa:nginx/stable

ビルドに必要なパッケージを揃える
最新バージョンについての情報は以下より

https://github.com/pagespeed/ngx_pagespeed

sudo aptitude update
sudo aptitude safe-upgrade
sudo aptitude install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

ソースをもってくる、場所はとりあえずホームディレクトリ

mkdir ~/nginxsrc
cd ~/nginxsrc
sudo apt-get source nginx-full

モジュールをソースの中に配置する

cd nginx-1.6.0/debian/modules
wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.7.30.4-beta.zip
unzip v1.7.30.4-beta.zip
cd ngx_pagespeed-1.7.30.4-beta/
wget https://dl.google.com/dl/page-speed/psol/1.7.30.4.tar.gz
tar -xzvf 1.7.30.4.tar.gz

configureにngx_pagespeedのオプションを追加する
common,light,full,extrasなどに分かれているので利用するパッケージの部分に記述する

cd ~/nginxsrc/nginx-1.6.0
vi debian/rules

extrasに追加する場合の例(最後の行が該当):

extras_configure_flags := \
 $(common_configure_flags) \
 --with-http_addition_module \
 --with-http_dav_module \
 --with-http_flv_module \
 --with-http_geoip_module \
 --with-http_gzip_static_module \
 --with-http_image_filter_module \
 --with-http_mp4_module \
 --with-http_perl_module \
 --with-http_random_index_module \
 --with-http_secure_link_module \
 --with-http_spdy_module \
 --with-http_sub_module \
 --with-http_xslt_module \
 --with-mail \
 --with-mail_ssl_module \
 --add-module=$(MODULESDIR)/headers-more-nginx-module \
 --add-module=$(MODULESDIR)/nginx-auth-pam \
 --add-module=$(MODULESDIR)/nginx-cache-purge \
 --add-module=$(MODULESDIR)/nginx-dav-ext-module \
 --add-module=$(MODULESDIR)/nginx-development-kit \
 --add-module=$(MODULESDIR)/nginx-echo \
 --add-module=$(MODULESDIR)/ngx-fancyindex \
 --add-module=$(MODULESDIR)/nginx-http-push \
 --add-module=$(MODULESDIR)/nginx-lua \
 --add-module=$(MODULESDIR)/nginx-upload-progress \
 --add-module=$(MODULESDIR)/nginx-upstream-fair \
 --add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module \
 --add-module=$(MODULESDIR)/ngx_pagespeed-1.7.30.4-beta

おまじないを一言放ってビルドを行う

sudo apt-get build-dep nginx
sudo dpkg-buildpackage -b

エラーなどが無ければ最初に作成したディレクトリ以下にパッケージが作成されているはず

cd ~/nginxsrc/
% ls
nginx-1.6.0 nginx-full_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0.debian.tar.gz
nginx-common_1.6.0-1+trusty0_all.deb nginx-light-dbg_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0.dsc
nginx-doc_1.6.0-1+trusty0_all.deb nginx-light_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0_all.deb
nginx-extras-dbg_1.6.0-1+trusty0_amd64.deb nginx-naxsi-dbg_1.6.0-1+trusty0_amd64.deb nginx_1.6.0-1+trusty0_amd64.changes
nginx-extras_1.6.0-1+trusty0_amd64.deb nginx-naxsi-ui_1.6.0-1+trusty0_all.deb nginx_1.6.0.orig.tar.gz
nginx-full-dbg_1.6.0-1+trusty0_amd64.deb nginx-naxsi_1.6.0-1+trusty0_amd64.deb

インストール

sudo dpkg --install nginx-common_1.6.0-1+trusty0_all.deb nginx-extras_1.6.0-1+trusty0_amd64.deb

確認は-Vオプションで
最後にngx_pagespeedが追加されているはず。公式バージョンには無い。
(逆に言うと差分はそれぐらい)

% nginx -V
nginx version: nginx/1.6.0
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' 
--with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' 
--prefix=/usr/share/nginx 
--conf-path=/etc/nginx/nginx.conf 
--http-log-path=/var/log/nginx/access.log 
--error-log-path=/var/log/nginx/error.log 
--lock-path=/var/lock/nginx.lock 
--pid-path=/run/nginx.pid 
--http-client-body-temp-path=/var/lib/nginx/body 
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi 
--http-proxy-temp-path=/var/lib/nginx/proxy 
--http-scgi-temp-path=/var/lib/nginx/scgi 
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi 
--with-debug 
--with-pcre-jit 
--with-ipv6 
--with-http_ssl_module 
--with-http_stub_status_module 
--with-http_realip_module 
--with-http_auth_request_module 
--with-http_addition_module 
--with-http_dav_module 
--with-http_flv_module 
--with-http_geoip_module 
--with-http_gzip_static_module 
--with-http_image_filter_module 
--with-http_mp4_module 
--with-http_perl_module 
--with-http_random_index_module 
--with-http_secure_link_module 
--with-http_spdy_module 
--with-http_sub_module 
--with-http_xslt_module 
--with-mail 
--with-mail_ssl_module 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/headers-more-nginx-module 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-auth-pam 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-cache-purge 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-dav-ext-module 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-development-kit 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-echo 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/ngx-fancyindex 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-http-push 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-lua 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-upload-progress 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/nginx-upstream-fair 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/ngx_http_substitutions_filter_module 
--add-module=/home/nekolove/nginxsrc/nginx-1.6.0/debian/modules/ngx_pagespeed-1.7.30.4-beta

blog:UbuntuのNginxでPagespeedを使う

Pagespeedは比較的昔からあるWebサイトの最適化手法の一つです。Googleさんが提供しています。
本来はWebサイトの設計やコードそのものを見直して転送量を含めたロードタイムを削減したりするのですが
すでに運用中のサイト全体に行うのはちょっと無理があります。
そこで必要な部分をサーバーサイドで自動的に行ってくれるモジュールを導入することで
Webサイトへの変更なしで効果を得ることが出来ます。
メリットは大きいですが、場合によってはデメリットが生じることがあるようなので
導入の判断は慎重にした方がよいかもしれません。
うちは遊びで運用してるので見切り発車で入れてみました^q^

PageSpeed Module – Make the Web Faster — Google Developers
https://developers.google.com/speed/pagespeed/module?hl=ja

Apacheはモジュールの形になるので導入が比較的容易なのですが、
Nginxはソースからビルドし直さないと行けないので結構面倒です。
バージョン管理も大変になるので、UbuntuのPPA(Personal Package Archives for Ubuntu)
を探してみたら良さそうなのを見つけました。

↓ここから
https://launchpad.net/ubuntu/+ppas?name_filter=nginx

↓これを使ってみた。
https://launchpad.net/~sandyd/+archive/nginx-current-pagespeed

いわゆる野良ビルドなので信頼性という点では??ですが、
面倒なことは楽したい方にはお薦めです^q^

add-apt-repositoryを使うのでまだ未導入の場合は

apt-get install python-software-properties

とする

# add-apt-repository ppa:sandyd/nginx-current-pagespeed
 This PPA contains the latest version of Nginx built with the Pagespeed modulet.

Original package backported from Debian and pagespeed support added

IMPORTANT NOTE:
On Trusty, and possibly future releases, add the following to /etc/apt/preferences.d/nginx-current-pagespeed

Package: *
Pin: release o=LP-PPA-sandyd-nginx-current-pagespeed
Pin-Priority: 600

From trusty onwards, Ubuntu will be synced with debian unstable (See ProposedMigration https://wiki.ubuntu.com/ProposedMigration), which will require the fix above to continue using the PPA.
 More info: https://launchpad.net/~sandyd/+archive/nginx-current-pagespeed
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keyring `/tmp/tmppit1oi9v/secring.gpg' created
gpg: keyring `/tmp/tmppit1oi9v/pubring.gpg' created
gpg: requesting key F2F46C93 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmppit1oi9v/trustdb.gpg: trustdb created
gpg: key F2F46C93: public key "Launchpad ~dolphinaura" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

2014-04-24現在でtrustyの1.4.7がパッケージにリストされているので
14.04LTSでも問題ありません。

# nginx -V
nginx version: nginx/1.4.7
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_mp4_module --with-http_perl_module --with-http_random_index_module --with-http_secure_link_module --with-http_spdy_module --with-http_sub_module --with-http_xslt_module --with-mail --with-mail_ssl_module --add-module=/build/buildd/nginx-1.4.7/debian/modules/headers-more-nginx-module --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-cache-purge --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-dav-ext-module --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-development-kit --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.4.7/debian/modules/ngx-fancyindex --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-http-push --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-lua --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-upload-progress --add-module=/build/buildd/nginx-1.4.7/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.4.7/debian/modules/ngx_pagespeed --add-module=/build/buildd/nginx-1.4.7/debian/modules/ngx_http_substitutions_filter_module

設定はここからもってきた
バーチャルホストごとに設定したい場合は下の方に設定例がありますね

PageSpeed Configuration – PageSpeed Module — Google Developers
https://developers.google.com/speed/pagespeed/module/configuration

pagespeed on;

# Needs to exist and be writable by nginx.
pagespeed FileCachePath /var/cache/ngx_pagespeed_cache;

# Ensure requests for pagespeed optimized resources go to the pagespeed handler
# and no extraneous headers get set.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
  add_header "" "";
}

動作確認

# curl -I http://localhost/wp/
HTTP/1.1 200 OK
Server: nginx/1.4.7
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.5.9-1ubuntu4
X-Pingback: http://www.nekolove.jp/wp/xmlrpc.php
Date: Thu, 24 Apr 2014 01:52:34 GMT
X-Page-Speed: 1.7.30.4-3847
Cache-Control: max-age=0, no-cache

X-Page-Speedが出ていればOK
うちの場合は劇的に変わるものではないっぽいですなー

FreeBSD:FreeBSDのApache2.4でowncloudが動かない?

新しく環境作ってやってみたけど、結局そういう結論になった。
具体的には何かが原因でWebdavのコマンドがブロックされるみたい。
この”何か”がわからないので困っている。
Webdavモジュールはそもそもロードしてないし。
一応公式フォーラムには対応例があったけど、どれも当てはまらなかった。

Apacheに記録されるログ

xxx.xxx.xxx.xxx - - [16/Apr/2014:08:47:56 +0900] "PROPFIND /owncloud/remote.php/webdav/ HTTP/1.1" 405 253

owncloudに記録されるログ

Warning	core	isWebDAVWorking: NO - Reason: Method not allowed (Sabre_DAV_Exception_MethodNotAllowed)	2014-04-15T23:47:56+00:00

Apache2.4なら全部ダメというわけではなく、たとえばUbuntuでリポジトリからインストールしたものに関しては大丈夫みたい。
今のところ問題があるのはFreeBSDのApache2.4で、Portsもパッケージも両方ダメだった。
ちょっと原因がわからないし思い浮かばないので仕方が無くnginxをフロントにおいて、
owncloudはphp-fpm経由で動かすことにした。

owncloudの公式にあるnginxの設定例はサブドメインのサイト全体に対する設定だったので
あるURLの下に配置するには不適だったのでいじくる。
サブドメイン用意するのはいいとしても、SSLのキーをもう一個用意しないといけないのは面倒だから・・・
というわけで大体↓こんな感じに

# owncloud
location ^~ /owncloud {
        root /usr/local/www;
        index index.php;
        try_files $uri $uri/ /index.php?$args;
        location ~ ^/owncloud/(?:\.|data|config|db_structure\.xml|README) {
                deny all;
        }
        
		rewrite ^/owncloud/apps/([^/]+)/(.+\.(css|php))$ /owncloud/index.php?app=$1&getfile=$2 last;
        rewrite ^/owncloud/remote/(.*)$ /owncloud/remote.php/$1 last;
		
        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;
                include fastcgi_params;
                fastcgi_index index.php;
                fastcgi_param PATH_INFO $2;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_pass  127.0.0.1:9000;
        }
        location ~* \.(?:jpg|gif|ico|png|css|js|svg)$ {
                expires max; add_header Cache-Control public;
        }
}

公式のには入ってないのが多々あるしもうちょっと洗練させれそうな気がしなくもないが、ひとまずこれで動いてる模様。

blog:Apache2からNginxに載せ替えた

だいーぶ放置してたけど、ゲームも一段落したので
久しぶりに弄ってみようと思ってまずhttpをしゃべるサーバーを入れ替えてみた(´ω`)
Apache2+php_modからNginx+php5-fpmにしました。
サンプルのコンフィグ使いながら仮想環境で試してたんだけど、うまくいかなくて(´・ω・`)ショボーン
ロケーションのマッチングルールを理解するのに手間取った・・・
うちみたいにURLの最後を.phpにしてるとWordpressのサンプルコンフィグだと問題がある
どうやら空のURLリクエストがphp-fpmに飛んでいくっぽい感じだったので、飛ばないように設定

大体こんな感じになった

        location /wp/ {
                index index.php;
                if (-f $request_filename) {
                        expires 30d;
                        break;
                }
                if (!-e $request_filename) {
                        rewrite ^.+?(/wp-.*) $1 last;
                        rewrite ^.+?(/wp/.*\.php)$ $1 last;
                        rewrite ^ /wp/index.php last;
                }
        }
        location ~ ^(?:(?!(?:/archives/)).)*\.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

MovableTypeから乗り換えた人なんかはパーマリンクがうちみたいになってるところ多そう
Nginxだと普通に罠みたいなURLになるんで困るわけだが( ̄∇ ̄;)

とりあえずフロントがNginxでWordpressはphp5-fpmに乗っているけど、実はまだapache2で動いてるところがあります
表に出してないWebアプリケーションをまだapache2に任せてるゆえですが
NginxがDigest認証に対応してくれたら移植しよう

FreeBSD on VirtualBoxはまだまだ問題あり

環境のせいかわからないが、仮想化したUbuntuのインターフェイスで盛大にDropが出る
ホストの物理側だと問題無いので、ブリッジインターフェイスに問題あるっぽい
他のOSだとどうなんだろうな、あんまり報告が無いってことは大丈夫なんだろうけど(´Д`;)
環境のせいかなぁ・・・

メイン鯖がハイスペックな割にあんまり使われてないので、何かに使いたいのですがのう
巨大なストレージ抱えてるから他のOSやハイパーバイザーに乗り換えられないという問題ががが

FreeBSD:phpVirtualBoxでなんちゃってハイパーバイザー

FreeBSDを生かしたまま、もしくはハイパーバイザに載せ替えてLinuxのゲーム鯖を動かせられないか
夏頃から動き回って無駄金使った結果、FreeBSDにVirtualBoxとphpVirtualBoxを乗せて
仮想マシンのホストにすることが出来た。

FreeBSDのVirtualBoxでRDPによるコンソールはサポートされていないことから
仮想マシンを立ち上げるときに、VNCサーバを立てるオプションが渡されるように
スクリプトを書き換える必要があった

ここに書いてある内容でおk
FreeBSDでphpVirtualBoxのコンソールを使う方法 | TATSUYA.info
http://tatsuya.info/wp/archives/10652

サーバの名前に;ポート番号を入れることでVNCサーバが勝手に立ってくれるので
サーバのIP:ポート番号でOSのインストールからVNCで見れる。
ちょーべんり

いくつか仮想化ソフトを試してみたが、最大の候補だったESXiが
先行き不安&CSGO鯖として使い物にならないのには閉口した。
Hyper-Vは優秀だったが、Tickレートを上げるとラグが増えるのでちょっと厳しい。
KVMやXenは試す機会が無かったが、結局VirtualBoxが使えることがわかったのでこれでFA
Webブラウザでちょっとしたメンテナンスが出来るのもポイント高かったのでー。

サーバへの収容数はTickが128ぐらいになると2コアで1鯖あたりがCPU的に限界っぽい感じ
デフォルトの64なら3鯖ぐらいはいけるようだった。メモリは8Gぐらいいるような感じだったが。
仮想化してあるんで、割り込みによるオーバーヘッドのせいだろうから物理マシンならもう少し詰め込めそう
物理マシンの数を増やすと電気代や空調の問題が出てくるから、
仮想化して台数減らす方向に動いたわけだけども。

鯖のマシンを更新

↓これを

HostOS : Windows7 Professional 64bit
VM App:VMware Workstation v6

CPU:Intel Xeon 3350 (2.66GHz QuadCore) *EIST有効
M/B:Intel DQ45CB
Memory:DDR2 PC2-6400 2GByte x4
NIC:Broadcom NetXtreme PCIe Ethernet Adapter

GustOS:Ubuntu Server (CS:S用)
CPUコア割り当て:2
メモリ割り当て:3Gbyte
HDD割り当て:40Gbyte+120Gbyte

Server IP : 116.91.118.247:27015
Source TV : 116.91.118.247:27020

↓これにした

HostOS : Windows Server 2008 R2
VM App:Hyper-V

CPU:Intel Core i5 2400 (3.1GHz QuadCore)
M/B:Asrock H67M-GE
Memory:DDR3 PC3-10600 2GByte x4
NIC:Broadcom NetXtreme PCIe Ethernet Adapter

GustOS:Ubuntu Server (CS:S用)
CPUコア割り当て:2
メモリ割り当て:3Gbyte
HDD割り当て:40Gbyte+120Gbyte

Server IP : 116.91.118.247:27015
Source TV : 116.91.118.247:27020

それと共にすぐに使わないディスクを外して
アイドル90w→44wに
ある程度の負荷がかかってるときで、60wぐらいで動いてる模様
SandyBrigeちゃんは省電力ですなぁ・・・QuadCoreなのに
起動時のMAXが80wぐらいなので、ACアダプター電源いけるかもしれない

↓OSがServerOSなので今回大変お世話になったWiki

Windows Server 2003 / 2008 をデスクトップOSとして使うまとめWiki
http://www24.atwiki.jp/server2003/

知ってる人は知ってるけど、2008R2はほぼWindows7の機能を持ってる
2008専用のドライバを持ってない場合、ほぼWindows7のドライバで事足りる
しかしUSB3.0のドライバだけ入ってくれなかった。Etronのサイトからドライバ落としてきたら解決
http://www.etron.com/LatestNews-Detail.php?ID=271
あとSidebarが無い、もし使うならファイルをどこかから持ってこないといけない。

CSS鯖はHyper-VのUbuntu Serverに移植
といっても大したことを設定してなかったのでほぼ新規に入れ直した。

本来Hyper-Vで対応してるLinuxってSUSEとRedhatの一部しかないんだけど(パッケージに依存してるので)
統合サービスがLinuxのkernel(2.6.32以降)に入ったので
コンフィグ弄ってbuildし直すか、moduleを追加してやると
Ubuntuのようなディストリビューションでもハイパフォーマンスの仮想マシンとして扱えます。

ちなみに仮想マシンの問題の一つとして時刻が狂うというのがありますが
Hyper-Vもあります、時刻同期サービスが提供されないLinuxでは、対策をしないと例外なく時間が狂います
うちのはhwclockがあまりにずれすぎてubuntu側で無視してローカルクロックのみ使うようになったみたいです。
あんまりよろしくない話ですが、とりあえずこれはこれでよしとします。
(完全に同期させるのがちょっと難しいので)

↓ずれすぎw

nekolove@ubuntu:/etc# date & hwclock
[1] 6804
2011年  3月 28日 月曜日 13:27:50 JST
2011年03月26日 20時10分24秒  -1.000594 seconds
[1]+  Done                    date

そうそう、VMwareWorkstationを捨ててHyper-Vに移行した理由に
ホストOSとの電源同期が選べるところがある
シャットダウンと起動したときの電源状態を選べるのです。
これは仮想マシンごとに設定出来るようです。

仮想マシンのことを考えずにシャットダウンや起動するときに便利ー。
というわけで今日の停電に合わせたシャットダウンコマンドをタスクスケジューラに入れて
シャットダウン→復電後自動起動するところまで確認出来た。
もし起動しなかったらWOLで立ち上げる。

雑記:チラシの裏をまとめていくつか

前P5W Deluxe使ってたんですが、ふとネットの海を彷徨ってたところ、こんなのを発見
http://www.unitycorp.co.jp/campaign/p5e_campaign/index.html
P5Eへのアップグレードキャンペーンらしい、、、そしてP5Wがリストにある( ゚Д゚)!
友人に貸してたので、使ってないことを確認して急いで取り寄せ→申し込み
ヒートシンクのシールをはがしてたので、しつこいほど破損に対する言及があったことから、
若干の不安があったんですが大丈夫だとのこと。
ちなみにメモリスロット2が死んでるマザーでした。
4枚差しが(壊れてて)出来ないのと45nmCPUへの乗り換えで外した記憶が・・・。
まあ、燃えないゴミ逝きの予定だったので、これはラッキー

P5E_01.jpg

ちょっと所用で、某日夕方に秋葉をうろついてみたら、
某そふまぷにてQ9550が10個限定24800円(だったかな?)のPOPを発見
一応最安っぽいので、ちょっと考えてから店員に聞いてみたところ、まだあるとのこと。
じゃあってことで買ってみました。
先に注文したP5Eと組み合わせて使用するぜ

組み立て中、CPUのヒートシンクを付けるときに、
その周辺に生えてる鋭利なフィンで指を切りました・・・
タオルかなんかで保護しといた方が良かったね

というわけで、元からのパーツと併せてこんな感じになりました。

P5E_02.jpg

動作確認したら速攻でMF化するオイラ

 

P5E_MF.jpg

LLCが安定したり、BIOSにメニューが追加されたり、ロゴがちょっとかっこよくなったりと(゚д゚)ウマー

メインPCの構成↓

OS:WindowsXP Professional SP3
Case:WiNDy ALTIUM SUPER X10
CPUIntel Core2Quad Q9550 2.83GHz
Memory:Transend 2Gbyte x4 (領域外はRAMDriveにしてSWAP用に)
Power:Owltech Seasonic SS-650HT
MB:ASUS P5E (BIOSでMF化)
PCI-E16:MSI Radeon HD4850 512MByte
PCI1Creative X-Fi Platinum
PCI2EARTHSOFT PV4
SATA1WD Rapter WD740ADFD 74GB (RAID0)
SATA2WD Rapter WD740ADFD 74GB (RAID0)
SATA3WD Caviar Black WD1001FALS 1TB
SATA4WD Caviar Black WD1001FALS 1TB
SATA6IODATA BRD-SP8 BD-Rドライブ(松下 SW-5584)
IDEPioneer純正 DVR-116 DVDスーパーマルチドライブ

おまけ
プライマリディスプレイ:EIZO FlexScan HD2452W-BK
セカンダリディスプレイ:EIZO Flex Scan L885-BK
スピーカー:Pioneer FILL X-NT7MD (ミニコンポ)

今までメインPCに付いてたXeon x3350(2.66GHz Quad)の使い道を考えてみる・・・録画PC逝きだな。
ついでにメモリも2Gを満載して2×4の8Gへ。
そしたらファンが全部全開になってしまった・・・。
某Wikiを見ながらBIOSを編集しアップデート。どきがむねむねです。
どうやら成功の様子。

OSはWindowsXPの64bitにした。PT1の環境でも特に問題なし。注意点も特にない。
ICカードリーダはWindowsUpdateからドライバを拾えるし。
そこにVMware Server v1を導入して、SRCDS鯖を仮想化でGO
というわけで、CSS鯖と、こっそり動かしてるL4D鯖がいきなり仮想環境行きにw
まだ一晩しかたってないけど、一応大丈夫そうな雰囲気
負荷が集中する時間帯があったら影響出そうだけど、
CSS鯖の稼働率はL4Dとかのおかげで順調に低下してることから、問題無さそだね。
MAX FPSが500で安定しちゃってるけど・・・。
LossやChokeが出なければいいか。

とりあえず、PCの稼働率が上がって、鯖の台数が減ってくれれば
仮想化の目的は達成できます(´ω`)
PT1の録画だけだとほとんどリソース使わないしねぇ
液晶テレビもBDレコも持ってるし、ワンルームに近いアパートだから視聴もいらない。

ちなみに、VM提供のConverterを使わなかったのでUbuntuを新規インストール
Verが8.10に上がってたからと、Ubuntuはあんまり弄ってなかったのでこれで良いかなと。
VMIを有効にしたらカーネルが勝手にVMI対応になるのはステキ

PT1録画兼いろいろ鯖

大本:NEC Express5800/S70 タイプSD

OS:Windows XP Professional x64 Edition SP2
Case:Default
CPUIntel XeonQuad X3350 2.66GHz
Memory:ノーブランド 2Gbyte x4 (Sofmapで1枚1000円だったGoldkeyのメモリ)
Power:Default
MB:Default
PCI-E16:MSI Radeon HD2400Pro 256MByte
PCI1PT1
SATA1Seagate ST3160815AS 160GB(Default)
SATA2WD Caviar Green WD10EADS 1TB

その他:
Tvrock+tvtestにて録画などを担当
VMware Server v1
仮想サーバ1:Ubuntu8.10 SRCDS鯖 メモリ4G確保 VMI有効
仮想サーバ2:テスト用 メモリ2G割り当て

FDD?DVD-ROM?USBのを使い回してるからいらないお(´ω`)

まだだ!まだ終わらんよ!(謎)