duplicity で1日前のデータを復元する

duplicity で1日前のデータを復元する

久しぶりにやって忘れていたのでメモ

■duplicityで1日前のものを復元する場合
十分に空きのあるサーバで以下をroot権限で実行(元がrootでバックアップとってるので)

# duplicity -t 1D ftp://user:password@サーバ/backup/target ./

「-t」は時間指定
「-t 1D」 ⇒ 1日前の指定(相対指定)

以前のエントリに「年月日の指定方法」として書いてた・・・。

duplicityをCentOS6.3にインストールするメモ
http://www.mogumagu.com/wp/wordpress/?p=1162

再掲載

■年月日の指定方法
○年月日と時間の指定(日本時間の2008年9月4日 18:57:11)
2008-09-04T18:57:11+09:00

○年月日の指定(2008年9月4日)
2008-09-04
2008/09/04
09/04/2008
09-04-2008

○相対的な指定
3D5h45m(3日前と5時間45分前)
5Y4M15s(5年4ヶ月と15秒前)

○現在
now

Windows10にしたらVagrantの起動時にネットワークインターフェースが見当たらなくなった。

家のPCを1台Windows10にアップグレードしてみた。

以下アップグレード後にしたこと。

ESET SmartSecurityがインストールされているバージョンだと対応していないということで対応バージョンを入れなおした。
Microsoft Windows 10 への対応について
http://eset-support.canon-its.jp/faq/show/3276

vagrantの起動に失敗したので修正。

C:\Users\****>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Available bridged network interfaces:
==> default: When choosing an interface, it is usually the one that is
==> default: being used to connect to the internet.
    default: Which interface should the network bridge to?

ネットワークインターフェースが見当たらない・・・

Upgrading to Windows 10, Part 2
http://blog.echothis.com/2015/09/02/upgrading-to-windows-10-part-2/

このページを参考に

VirtualBoxの5系を入れてみる。
https://www.virtualbox.org/

Vagrant 1.7.4にもしてみる。
https://www.vagrantup.com/downloads.html

その後再度vagrant up

C:\Users\****>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 4.3.6
    default: VirtualBox Version: 5.0
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => C:/Users/******
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

なんとか動いた。

Zabbixエージェントのインストール

Zabbixエージェントを沢山インストールしたのでメモ。

Zabbix SIAのyumリポジトリを利用する場合

Zabbix 2.2 for RHEL5, Oracle Linux 5, CentOS 5:

# rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/5/x86_64/zabbix-release-2.2-1.el5.noarch.rpm

Zabbix 2.2 for RHEL6, Oracle Linux 6, CentOS 6:

# rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm

Zabbix agent だけインストールする場合

# yum install zabbix-agent

エージェントにはスタンドアロンの「zabbix_agentd」とxinetd経由の「zabbix_agent」の2種類ある。
「zabbix_agent」は機能に制限があるようなので「zabbix_agentd」を利用する。

設定ファイル「/etc/zabbix/zabbix_agentd.conf」を編集

Server=ZabbixサーバのIPに設定

エージェントの起動

# service zabbix-agent start

エージェントのステータス確認

# service zabbix-agent status

自動起動の設定

# chkconfig zabbix-agent on

ファイアウォールがある場合はZabbix Agentホストのポート10050番を開けないと監視されない。
iptablesの設定を変更してポートを開放する。
※Zabbixサーバ側はポート10051番が開いてる必要がある。

後はZabbixサーバ側でホストを追加して「Template OS Linux」テンプレートとかをリンクさせて
しばらく待つ。

■参考
Zabbix Documentation 2.2
https://www.zabbix.com/documentation/2.2/manual/installation/install_from_packages#red_hat_enterprise_linux_centos

Zabbix 2.4 を yumでインストール(CentOS6.5)※このシリーズ
https://blog.apar.jp/linux/334/

(12)Cannot allocate memory: fork: Unable to fork new process が出たので調査を開始

やったことのメモ。

(12)Cannot allocate memory: fork: Unable to fork new process
が発生したので調査のためにスクリプトを追加。

発生までの経緯をみるとどうもswapが徐々に喰いつぶされていき、swapが無くなると
上記のエラーが発生しているような感じ。

徐々にといっても何らかのタイミングでガクンとswapが減るのでそれをどうにか
突き止めたい。。。

いろいろ調べて以下のページを参考にしてスクリプトを作成(そのまま)

Find Out What Is Using Your Swap
http://northernmost.org/blog/find-out-what-is-using-your-swap/
/proc/以下のプロセスのフォルダ内のsmaps内をさらって合計していく感じ。

■getswap.sh

    #!/bin/bash
    # Get current swap usage for all running processes
    # Erik Ljungstrom 27/05/2011
    SUM=0
    OVERALL=0
    for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
            PID=`echo $DIR | cut -d / -f 3`
            PROGNAME=`ps -p $PID -o comm --no-headers`
            for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
            do
                    let SUM=$SUM+$SWAP
            done
            echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
            let OVERALL=$OVERALL+$SUM
            SUM=0

    done
    echo "Overall swap used: $OVERALL"

■cronswap.sh
クーロンで叩く用。

    #!/bin/bash
    FILENAME=`date +"%Y%m%d_%H%M%S"`
    echo "${FILENAME}"
    /root/swapLog/getswap.sh  | egrep -v "Swap used: 0" |sort -n -k 5 > /root/swapLog/log/"${FILENAME}".log

■logs
このフォルダに日時の形式で出力

■cronの設定
1ファイル2KB程度なのでとりあえずとりっぱなしで。10分毎。

    #swaplog
    */10 * * * * /root/swapLog/cronswap.sh

■設置時のswap出力例
swapを使ってるプロセスが表示される。

    $ less 20150914_162958.log 
    Overall swap used: 123388                                                                                                                                                                                                                    
    PID=1840 - Swap used: 28 - (syslogd )
    PID=2245 - Swap used: 28 - (saslauthd )
    PID=2247 - Swap used: 28 - (saslauthd )
    PID=2248 - Swap used: 28 - (saslauthd )
    PID=2244 - Swap used: 32 - (saslauthd )
    PID=2246 - Swap used: 32 - (saslauthd )
    PID=1843 - Swap used: 44 - (klogd )
    PID=2328 - Swap used: 48 - (mingetty )
    PID=2323 - Swap used: 52 - (mingetty )
    PID=2332 - Swap used: 52 - (mingetty )
    PID=2307 - Swap used: 56 - (gam_server )
    PID=2324 - Swap used: 56 - (mingetty )
    PID=2330 - Swap used: 56 - (mingetty )
    PID=2329 - Swap used: 60 - (mingetty )
    PID=1 - Swap used: 64 - (init )
    ・・・・
    PID=2274 - Swap used: 148 - (hald-runner )
    PID=9940 - Swap used: 148 - (pop3-login )
    PID=2054 - Swap used: 152 - (mysqld_safe )
    PID=2017 - Swap used: 224 - (vsftpd )
    PID=496 - Swap used: 260 - (udevd )
    PID=1962 - Swap used: 304 - (sshd )
    PID=1901 - Swap used: 448 - (3dm2 )
    PID=1914 - Swap used: 448 - (3dm2 )
    PID=1915 - Swap used: 448 - (3dm2 )
    PID=2273 - Swap used: 1900 - (hald )
    PID=2320 - Swap used: 7172 - (miniserv.pl )
    PID=1804 - Swap used: 7468 - (miniserv.pl )
    PID=17177 - Swap used: 7736 - (spamd )
    PID=17197 - Swap used: 8364 - (spamd )
    PID=2303 - Swap used: 10060 - (yum-updatesd )
    PID=2158 - Swap used: 24512 - (spamd )
    PID=2101 - Swap used: 44588 - (mysqld )

あと合わせてsarコマンドも設定

参考
http://blog.ybbo.net/2013/07/10/oom-killer%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
http://b.l0g.jp/dev/finding-bottleneck-with-sar1/
http://b.l0g.jp/dev/finding-bottleneck-with-sar2/

pstreeも確認するようにする。

$ pstree -lcph

http://itpro.nikkeibp.co.jp/article/COLUMN/20071204/288730/

またアクセスログの記録と対応するようにApacheのaccess_logの先頭にPIDを表示するように設定を変更した。
「%P」はPIDを出力する。先頭に追加。
これでswapを確保したままになっているのがhttpのプロセスだった場合にどのアクセスと対応しているのか
がわかるはず。

    $ diff httpd.conf httpd.conf_back20150914 
    485,486c485,486
    < LogFormat "%P %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    < LogFormat "%P %h %l %u %t \"%r\" %>s %b" common
    ---
    > LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    > LogFormat "%h %l %u %t \"%r\" %>s %b" common

再起動必須。

実際「Cannot allocate memory」が出て已む無くapacheをリスタートしようと
したのに起動に失敗したときの対応は以下。

#service httpd restart
失敗した!
#/usr/sbin/lsof -i | grep http
開いているファイルのプロセスを特定
#kill-9 プロセスID
そのほかのプロセスも殺す。
#service httpd start

後はswapの残りを監視してアラート飛ばすのを作る予定。

Chromeでgoogleの検索やサービスを利用するともっさりする件

最近Chromeでgoogleの検索やサービスを利用するともっさりして効率が悪いので調査。

調べてみるとどうやら

chrome://flags/

↑にアクセスしてQUICプロトコルを無効にして再起動 & 履歴の削除を
行うことで速くなる模様。

chrome_QUIC

Google Mapとかがすごく速くなった。。Youtubeもブチブチ切れなくなった!

■参考URl

ChromeでのGoogleサービスが遅い
https://productforums.google.com/forum/#!topic/chrome-ja/HCoHi6O0j-0

ChromeでGoogleにアクセスすると遅い?
https://sinn246.wordpress.com/2015/06/07/chrome%E3%81%A7google%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%99%E3%82%8B%E3%81%A8%E9%81%85%E3%81%84%EF%BC%9F/

Google Chromeが遅い!重い!すぐできる対策
http://chrome-guide.blog.so-net.ne.jp/2015-03-24

MySQLWorkbenchのアップデート

MySQL Workbench
http://dev.mysql.com/downloads/workbench

最新版の「MySQL Workbench 6.3.4 」をインストールしようとしたら、
現在インストールされているバージョンのインストーラが無いと
アンインストールできない感じだったので探した。

ちなみに探したインストーラはこれ。
mysql-workbench-gpl-5.2.38-win32.msi

■古いインストーラがあるページ
http://download.softagency.net/mysql/Downloads/MySQLGUITools/

このページで該当のインストーラをダウンロードして、
アンインストール時にインストーラの場所を聞かれるので
フォルダを指定すればOK。

Vagrant CentOS7 上でdockerはじめてみた

Vagrant CentOS7 上でdockerはじめてみた

Vagrantbox.es
http://www.vagrantbox.es/

CentOS 7 x64 (Minimal, Shrinked, Guest Additions 4.3.26) (Monthly updates)
https://github.com/holms/vagrant-centos7-box/releases/download/7.1.1503.001/CentOS-7.1.1503-x86_64-netboot.box

↑のboxで起動しただけの初期状態からdockerをインストールする。

■dockerを探す

[vagrant@localhost ~]$ yum search docker
Loaded plugins: fastestmirror
・・・・・
============================================================================================================ N/S matched: docker ============================================================================================================
cockpit-docker.x86_64 : Cockpit user interface for Docker containers
docker-logrotate.x86_64 : cron job to run logrotate on docker containers
docker-python.x86_64 : An API client for docker written in Python
docker-registry.noarch : Registry server for Docker
docker-registry.x86_64 : Registry server for Docker
docker-selinux.x86_64 : SELinux policies for Docker
docker.x86_64 : Automates deployment of containerized applications
docker-devel.x86_64 : A golang registry for global request variables (source libraries)

  Name and summary matches only, use "search all" for everything.

■インストール

[root@localhost ~]# yum install docker

[root@localhost ~]# systemctl status docker.service
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
   Active: inactive (dead)
     Docs: http://docs.docker.com

■いざ起動

[root@localhost ~]# systemctl start docker.service
Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details.

動かない。。

[root@localhost ~]# systemctl status docker.service
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
   Active: failed (Result: exit-code) since Fri 2015-06-26 03:37:05 UTC; 4min 2s ago
     Docs: http://docs.docker.com
  Process: 2467 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=1/FAILURE)
 Main PID: 2467 (code=exited, status=1/FAILURE)

Jun 26 03:36:05 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
Jun 26 03:36:05 localhost.localdomain docker[2467]: time="2015-06-26T03:36:05Z" level=info msg="+job serveapi(unix:///var/run/docker.sock)"
Jun 26 03:36:05 localhost.localdomain docker[2467]: time="2015-06-26T03:36:05Z" level=info msg="Listening for HTTP on unix (/var/run/docker.sock)"
Jun 26 03:37:05 localhost.localdomain docker[2467]: time="2015-06-26T03:37:05Z" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: exit status 1"
Jun 26 03:37:05 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jun 26 03:37:05 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
Jun 26 03:37:05 localhost.localdomain systemd[1]: Unit docker.service entered failed state.

■以下のページを発見。

CentOS7でDockerを動かす場合
http://shimakaze.hatenablog.com/entry/2015/04/02/103449

■とりあえず「libdevmapper」インストール。

# yum -y install libdevmapper.so.1.02

[root@localhost ~]# systemctl start docker.service
Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details.

[root@localhost ~]# systemctl status docker.service
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
   Active: failed (Result: exit-code) since Fri 2015-06-26 03:45:26 UTC; 14s ago
     Docs: http://docs.docker.com
  Process: 2680 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=1/FAILURE)
 Main PID: 2680 (code=exited, status=1/FAILURE)

Jun 26 03:45:26 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
Jun 26 03:45:26 localhost.localdomain docker[2680]: time="2015-06-26T03:45:26Z" level=info msg="+job serveapi(unix:///var/run/docker.sock)"
Jun 26 03:45:26 localhost.localdomain docker[2680]: time="2015-06-26T03:45:26Z" level=info msg="Listening for HTTP on unix (/var/run/docker.sock)"
Jun 26 03:45:26 localhost.localdomain docker[2680]: time="2015-06-26T03:45:26Z" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: Error running DeleteDevice dm_task_run failed"
Jun 26 03:45:26 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jun 26 03:45:26 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
Jun 26 03:45:26 localhost.localdomain systemd[1]: Unit docker.service entered failed state.

まだ動かない。。

■調べて以下のページをみつける。

[1.6.0][graphdriver] prior storage driver “devicemapper” failed: error intializing graphdriver #13008
https://github.com/docker/docker/issues/13008

[root@localhost lib]# pwd
/var/lib
[root@localhost lib]# rm -rf docker/

とりあえず消してみた。

[root@localhost ~]# systemctl start docker.service
Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details.

[root@localhost ~]# systemctl status docker.service -l
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
   Active: failed (Result: exit-code) since Fri 2015-06-26 03:51:46 UTC; 47s ago
     Docs: http://docs.docker.com
  Process: 15073 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=1/FAILURE)
 Main PID: 15073 (code=exited, status=1/FAILURE)

Jun 26 03:51:45 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
Jun 26 03:51:46 localhost.localdomain docker[15073]: time="2015-06-26T03:51:46Z" level=info msg="+job serveapi(unix:///var/run/docker.sock)"
Jun 26 03:51:46 localhost.localdomain docker[15073]: time="2015-06-26T03:51:46Z" level=info msg="Listening for HTTP on unix (/var/run/docker.sock)"
Jun 26 03:51:46 localhost.localdomain docker[15073]: time="2015-06-26T03:51:46Z" level=fatal msg="Shutting down daemon due to errors: error intializing graphdriver: Unable to take ownership of thin-pool (centos-docker--pool) that already has used data blocks"
Jun 26 03:51:46 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
Jun 26 03:51:46 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
Jun 26 03:51:46 localhost.localdomain systemd[1]: Unit docker.service entered failed state.

動かない・・・。

■一旦dockerを消す。

[root@localhost ~]# yum remove docker  

■とりあえずupdateする。

[root@localhost ~]# yum update

■もう一回いれてみる。

[root@localhost ~]# yum install docker

[root@localhost ~]# systemctl start docker

[root@localhost ~]# systemctl status docker
docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled)
   Active: active (running) since Fri 2015-06-26 03:57:52 UTC; 17s ago
     Docs: http://docs.docker.com
 Main PID: 1027 (docker)
   CGroup: /system.slice/docker.service
           └─1027 /usr/bin/docker -d --selinux-enabled

Jun 26 03:57:51 localhost.localdomain docker[1027]: time="2015-06-26T03:57:51Z" level=warning msg="Docker could not enable SELinux on the host system"
Jun 26 03:57:51 localhost.localdomain docker[1027]: time="2015-06-26T03:57:51Z" level=info msg="+job init_networkdriver()"
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="-job init_networkdriver() = OK (0)"
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="Loading containers: start."
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="Loading containers: done."
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="docker daemon: 1.6.2 ba1f6c3/1.6.2; execdriver: native-0.2; graphdriver: devicemapper"
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="+job acceptconnections()"
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="-job acceptconnections() = OK (0)"
Jun 26 03:57:52 localhost.localdomain docker[1027]: time="2015-06-26T03:57:52Z" level=info msg="Daemon has completed initialization"
Jun 26 03:57:52 localhost.localdomain systemd[1]: Started Docker Application Container Engine.

動いた・・・!

先に「libdevmapper.so.1.02」がはいってないといけなかったのか?

■動いたので自動起動に。

[root@localhost ~]# systemctl enable docker
ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'

■Dockerイメージの検索

[root@localhost ~]# docker search centos
INDEX       NAME                                    DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/centos                        The official build of CentOS.                   1087      [OK]       
docker.io   docker.io/tutum/centos                  Centos image with SSH access. For the root...   13                   [OK]
docker.io   docker.io/blalor/centos                 Bare-bones base CentOS 6.5 image                9                    [OK]
docker.io   docker.io/torusware/speedus-centos      Always updated official CentOS docker imag...   6                    [OK]
docker.io   docker.io/million12/centos-supervisor   Base CentOS-7 with supervisord launcher, h...   4                    [OK]
docker.io   docker.io/jdeathe/centos-ssh            CentOS-6 6.6 x86_64 / EPEL Repo. / OpenSSH...   3                    [OK]
docker.io   docker.io/layerworx/centos              A general CentOS 6 image with the EPEL6 an...   2                    [OK]
docker.io   docker.io/akroh/centos                  Centos 6 container that has been updated w...   0                    [OK]
docker.io   docker.io/nathonfowlie/centos-jre       Latest CentOS image with the JRE pre-insta...   0                    [OK]
docker.io   docker.io/pdericson/centos              Docker image for CentOS                         0                    [OK]

■Dockerイメージのダウンロード
とりあえず公式のcentosを取得する

[root@localhost ~]# docker pull docker.io/centos
Trying to pull repository docker.io/centos ...
7322fbe74aa5: Download complete
f1b10cd84249: Download complete
c852f6d61e65: Download complete
Status: Downloaded newer image for docker.io/centos:latest

■ダウンロードしたイメージの確認

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
docker.io/centos    latest              7322fbe74aa5        7 days ago          172.2 MB

■Dockerコンテナの作成
docker runでコンテナの新規作成と実行の両方が行われる

[root@localhost ~]# docker run -it --name centos1 docker.io/centos:latest /bin/bash
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
[root@f89ddd90d0fd /]# 

実行された。

docker run の主なオプション
-i:コンテナーの標準入力を開く。/bin/bashなどでコンテナーを操作する際に指定
-t:tty(端末デバイス)を確保する。/bin/bashなどでコンテナーを操作する際に指定
-d:バックグラウンドで実行する(後述)。既定では、コンテナーをフォアグラウンドで実行するため、Webサーバーやアプリケーションサーバーなど常時実行するコンテナーで指定
-p {ホストのポート番号}:{コンテナーのポート番号}:Dockerサーバーのホストとポートマッピングを構成

■コンテナにapache入れてみる。

[root@f89ddd90d0fd /]# yum install httpd

■一旦コンテナ停止

[root@f89ddd90d0fd /]# exit
exit

[Ctrl]+[d]キーでbashプロセスを終了できる。

コンテナを停止することなく、元のシェルに戻したい場合は[Ctrl-P]+[Ctrl-q]でコンテナのTTYを抜けられる。

■停止中のコンテナも含めてコンテナの状態を確認する

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                     PORTS               NAMES
f89ddd90d0fd        docker.io/centos:latest   "/bin/bash"         9 minutes ago       Exited (0) 3 minutes ago                       centos1

■コンテナの起動

[root@localhost ~]# docker start centos1
centos1

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS              PORTS               NAMES
f89ddd90d0fd        docker.io/centos:latest   "/bin/bash"         10 minutes ago      Up 19 seconds                           centos1 

■コンテナへの再接続

[root@localhost ~]# docker attach centos1
Enter押す
[root@f89ddd90d0fd /]# 

■[Ctrl-P]+[Ctrl-q]でTTY抜けてみる。

[root@f89ddd90d0fd /]# [root@localhost ~]# 

■コンテナの停止

[root@localhost ~]# docker stop centos1
centos1

■コンテナの再起動
※コンテナのプロセスを強制終了して再度スタート

[root@localhost ~]# docker restart centos1
centos1

■コンテナのコミット

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                     PORTS               NAMES
f89ddd90d0fd        docker.io/centos:latest   "/bin/bash"         About an hour ago   Exited (0) 7 seconds ago                       centos1

[root@localhost ~]# docker commit -a MOGUMAGU -m "CentOS7 installed Apache" centos1 localrepo:withApache
74fe551af11fbdbe8e5e4849fcd4dd580ce7057d80e976ceeaaf8b9750954756

保存したイメージの確認

[root@localhost ~]# docker images localrepo
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
localrepo           withApache          74fe551af11f        44 seconds ago      268.4 MB

イメージの作成履歴を見る

[root@localhost ~]# docker images -t
Warning: '-t' is deprecated, it will be removed soon. See usage.
└─f1b10cd84249 Virtual Size: 0 B
  └─c852f6d61e65 Virtual Size: 172.2 MB
    └─7322fbe74aa5 Virtual Size: 172.2 MB Tags: docker.io/centos:latest
      └─74fe551af11f Virtual Size: 268.4 MB Tags: localrepo:withApache

■コンテナの削除

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                     PORTS               NAMES
f89ddd90d0fd        docker.io/centos:latest   "/bin/bash"         About an hour ago   Exited (0) 5 minutes ago                       centos1
[root@localhost ~]# docker rm centos1
centos1
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost ~]# 

※保管が必要ならあらかじめdocker commitでイメージを保管しておくこと

■さっき作ったコンテナから起動

[root@localhost ~]# docker run -it --name centos2 localrepo:withApache /bin/bash
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
[root@5cdc79690cee /]# 
[root@5cdc79690cee /]# yum info httpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Installed Packages
Name        : httpd
Arch        : x86_64
Version     : 2.4.6
Release     : 31.el7.centos
Size        : 9.4 M
Repo        : installed
From repo   : base
Summary     : Apache HTTP Server
URL         : http://httpd.apache.org/
License     : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
            : web server.

apache入ってる。

[Ctrl-P]+[Ctrl-q]でTTY抜ける

[root@5cdc79690cee ~]# [root@localhost ~]# 

コンテナの起動状態を確認。

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND             CREATED              STATUS              PORTS               NAMES
5cdc79690cee        localrepo:withApache   "/bin/bash"         About a minute ago   Up About a minute                       centos2

動いてる。

■webサーバとして起動する例
先ほどコミットしたlocalrepo:withApacheをベースにwebサーバを起動しブラウザから確認する。

[root@localhost ~]# docker run -d --name webserver --expose=80 --publish 80:80 localrepo:withApache /usr/sbin/httpd -D FOREGROUND 

上記でホストのipでブラウザアクセスしたらapacheの初期画面が表示される。

状態はこちら

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                CREATED             STATUS                     PORTS                NAMES
6fd53d6fd905        localrepo:withApache   "/usr/sbin/httpd -D    3 minutes ago       Up 3 minutes               0.0.0.0:80->80/tcp   webserver
5cdc79690cee        localrepo:withApache   "/bin/bash"            46 minutes ago      Exited (0) 8 minutes ago                        centos2

実際のコンテンツなどはホストとボリュームを共有して保持しておくほうがいいみたい。

Composerを利用してのFuelPHP初期セットアップ

Composerを利用してのFuelPHP初期セットアップ

頻繁にセットアップするわけじゃないので毎回忘れるし、
その時々で方法が変わってたりするので現時点でのFuelPHP
インストール手順をメモ。

■参考
FuelPHP 1.7.2のComposerによるインストール
http://blog.a-way-out.net/blog/2014/07/14/fuelphp-1-7-2-composer-installation/

$ composer create-project fuel/fuel:dev-1.7/master ProjectName

タイムアウトしてしまった。

Failed to download fuel/core from source: The process "git clone --no-checkout 'git://github.com/fuel/core.git' 'fuel/core' && cd 'fuel/core' && git remote add composer 'git://github.com/fuel/core.git' && git fetch composer" exceeded the timeout of 300 seconds.

タイムアウトの対策
Why composer install timeouts after 300 seconds?
http://stackoverflow.com/questions/18917768/why-composer-install-timeouts-after-300-seconds

$ export COMPOSER_PROCESS_TIMEOUT=600

一回消してもう一度行う。

$ composer create-project fuel/fuel:dev-1.7/master ProjectName
Installing fuel/fuel (dev-1.7/master bafb42f2ab52968aea886ef1e6f341d8a62840c9)
  - Installing fuel/fuel (dev-1.7/master 1.7/master)
    Cloning 1.7/master

Created project in ProjectName
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing composer/installers (v1.0.21)
    Loading from cache

  - Installing fuel/docs (dev-1.7/master 473174d)
    Cloning 473174da2cf503c60d4a9935b71acfc31f0906d0

  - Installing fuel/core (dev-1.7/master e8c221a)
    Cloning e8c221af4cb685aefef20cc50a70f369eb37cb95

  - Installing fuel/auth (dev-1.7/master aa9bd2e)
    Cloning aa9bd2e5104026814ff516aacf03258f62a94a55

  - Installing fuel/email (dev-1.7/master 8fbf378)
    Cloning 8fbf378d74bac170a96cad96ba0aed77e319a865

  - Installing fuel/oil (dev-1.7/master ea37c3a)
    Cloning ea37c3a7fe8675fb3327327213b2eca55303933a

  - Installing fuel/orm (dev-1.7/master 5e05c30)
    Cloning 5e05c3068562548657fea69850a23b23f65a5545

  - Installing fuel/parser (dev-1.7/master 0cacd10)
    Cloning 0cacd10d7b1b8f92a0eeddce75c6ba2c0c28112f

  - Installing fuelphp/upload (2.0.2)
    Loading from cache

  - Installing psr/log (1.0.0)
    Loading from cache

  - Installing monolog/monolog (1.5.0)
    Loading from cache

  - Installing michelf/php-markdown (1.4.0)
    Loading from cache

monolog/monolog suggests installing mlehner/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
Writing lock file
Generating autoload files
        Made writable: /home/user/public_html/ProjectName/fuel/app/cache
        Made writable: /home/user/public_html/ProjectName/fuel/app/logs
        Made writable: /home/user/public_html/ProjectName/fuel/app/tmp
        Made writable: /home/user/public_html/ProjectName/fuel/app/config
Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? Y 

$ cd ProjectName/
$ oil --version
Fuel: 1.7.3 running in "development" mode

とりあえずインストールは出来た。

■git管理と権限設定

$ git init
Initialized empty Git repository in /******/ProjectName/.git/

$ git add -A
$ git commit


$ oil refine install
        Made writable: /home/user/public_html/ProjectName/fuel/app/cache
        Made writable: /home/user/public_html/ProjectName/fuel/app/logs
        Made writable: /home/user/public_html/ProjectName/fuel/app/tmp
        Made writable: /home/user/public_html/ProjectName/fuel/app/config

■DIコンテナを入れておく

Fuel Dependency
https://github.com/fuelphp/dependency

$ vim composer.json 
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing fuelphp/dependency (2.0.0)
    Downloading: 100%

Writing lock file
Generating autoload files

■アクセスURLの変更

アクセスするURLを調整するためにpublicディレクトリを任意の場所に任意の名前でコピー
この時assetsディレクトはコピーしないでおく。
fuel/core/config/asset.php

fuel/app/config
にコピーし

'paths' => array('assets/'),

の箇所を変更する。

■index.phpを消す

$ vim fuel/app/config/config.php
index_file' => false,

.htaccessの以下の部分のコメントを外す

# Remove index.php from URL
#RewriteCond %{HTTP:X-Requested-With} !^XMLHttpRequest$
#RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
#RewriteRule ^index\.php(.*)$ $1 [R=301,NS,L]
↓
# Remove index.php from URL
RewriteCond %{HTTP:X-Requested-With} !^XMLHttpRequest$
RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
RewriteRule ^index\.php(.*)$ $1 [R=301,NS,L]

これで駄目な場合は
RewriteBaseを指定してみる。

あとはnamespaceベースでの指定とかに変更したりする。

Vagrant:ゲストOSのディスク容量を増やしたときの作業ログ

Vagrantで立てたゲストの容量が8GBしかなかったので容量を20GBに増やしたときの作業ログ。

■環境
ホストOS:CentOS6.5
Vagrant:1.7.2
VirtualBox:4.3.28
ゲストOS:CentOS7

■ホスト側の作業場所

$ pwd
/home/user/VirtualBox VMs/cent7_default_1434608680280_85072

$ ll
合計 2961448
drwx------  3 user user       4096  6月 18 15:42 2015 ./
drwx------ 11 user user       4096  6月 18 15:24 2015 ../
drwx------  2 user user       4096  6月 18 15:24 2015 Logs/
-rw-------  1 user user 3033137152  6月 18 15:42 2015 box-disk1.vmdk
-rw-------  1 user user       8514  6月 18 15:42 2015 cent7_default_1434608680280_85072.vbox
-rw-------  1 user user       8514  6月 18 15:24 2015 cent7_default_1434608680280_85072.vbox-prev

■元々のvmdkファイルの確認

$ pwd
/home/user/VirtualBox VMs/tuat_163_cent7_default_1434608680280_85072

$ VBoxManage showhdinfo box-disk1.vmdk
UUID:           cd97ec61-426b-4d6b-9ae3-d79d07300179
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/VirtualBox VMs/tuat_163_cent7_default_1434608680280_85072/box-disk1.vmdk
Storage format: VMDK
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   2892 MBytes
In use by VMs:  cent7_default_1434608680280_85072 (UUID: 39b0d85e-cff7-40c3-b497-bc6b110fc49a)


■vmdkをvdiとしてクローン


$ VBoxManage clonehd box-disk1.vmdk box-disk1.vdi --format VDI
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 3630f1b4-3090-4009-88eb-4d634da2e42f

$ ll
合計 5948496
drwx------  3 user user       4096  6月 18 17:37 2015 ./
drwx------ 11 user user       4096  6月 18 15:24 2015 ../
drwx------  2 user user       4096  6月 18 15:24 2015 Logs/
-rw-------  1 user user 3060793344  6月 18 17:37 2015 box-disk1.vdi
-rw-------  1 user user 3033137152  6月 18 15:42 2015 box-disk1.vmdk
-rw-------  1 user user       8514  6月 18 17:37 2015 cent7_default_1434608680280_85072.vbox
-rw-------  1 user user       8514  6月 18 15:42 2015 cent7_default_1434608680280_85072.vbox-prev

■vdiのサイズ変更

$ VBoxManage modifyhd box-disk1.vdi --resize 20480
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

20(GB) * 1024(MB) = 20480

■できたvdiの確認

$ VBoxManage showhdinfo box-disk1.vdi
UUID:           3630f1b4-3090-4009-88eb-4d634da2e42f
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/user/VirtualBox VMs/cent7_default_1434608680280_85072/box-disk1.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       20480 MBytes
Size on disk:   2919 MBytes

■ここからGUIのVirtualBoxの管理画面でHDDをVDIに差し替える

ここのCUIでのやり方がわからない・・・。

※あとで判明。。以下を参考に。

Vagrant on Mac上のCeontOS7のディスク容量を後から増やす

■HDDをVDIに差し替えたらゲストを起動
ここからゲストでの操作

fdiskで/dev/sdaの容量が増えている事を確認する。

# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM

Disk /dev/mapper/centos-swap: 859 MB, 859832320 bytes, 1679360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

Disk /dev/mapper/centos-root: 7201 MB, 7201619968 bytes, 14065664 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

増加したところに新しくパーティション、論理ボリュームを作成し容量を増やす。

■パーティションを追加

# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

コマンド (m でヘルプ): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
パーティション番号 (3,4, default 3): 3
最初 sector (16777216-41943039, 初期値 16777216): 
初期値 16777216 を使います
Last sector, +sectors or +size{K,M,G} (16777216-41943039, 初期値 41943039): 
初期値 41943039 を使います
Partition 3 of type Linux and of size 12 GiB is set

コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM
/dev/sda3        16777216    41943039    12582912   83  Linux

「/dev/sda3」が追加された

■/dev/sda3のシステムをLinux LVMにする

コマンド (m でヘルプ): t
パーティション番号 (1-3, default 3): 3
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

コマンド (m でヘルプ): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000ac089

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    16777215     7875584   8e  Linux LVM
/dev/sda3        16777216    41943039    12582912   8e  Linux LVM

■反映して終了する

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。

■ゲストの再起動

# shutdown -r now

■Physical Volumeの状態を確認

# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               0
  Allocated PE          1922
  PV UUID               zR6Hya-5HZV-3dT5-NQZA-b3gF-gGif-SA3K4d

■pvcreateコマンドでPhysical Volumeを作成する。

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created

■作成内容を確認。

# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               0
  Allocated PE          1922
  PV UUID               zR6Hya-5HZV-3dT5-NQZA-b3gF-gGif-SA3K4d

  "/dev/sda3" is a new physical volume of "12.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name               
  PV Size               12.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               dJEJG3-j8DO-JWwn-cHyc-xeHR-cs5J-3jhgfT

■Volume GroupにPhysical Volumeを追加する

# vgextend centos /dev/sda3
  Volume group "centos" successfully extended

■Volume Groupの確認

# vgdisplay 
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.50 GiB
  PE Size               4.00 MiB
  Total PE              4993
  Alloc PE / Size       1922 / 7.51 GiB
  Free  PE / Size       3071 / 12.00 GiB
  VG UUID               mtWHXb-DYzV-cxFV-psLD-XvDR-sKjQ-lUZygi

増えてる。

■Logical Volumeの容量を増やす

増やしたいマウントポイントのLogical Volumeをdfコマンドで確認。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root   6.7G  2.5G  4.3G   37% /
devtmpfs                  236M     0  236M    0% /dev
tmpfs                     245M     0  245M    0% /dev/shm
tmpfs                     245M  4.3M  241M    2% /run
tmpfs                     245M     0  245M    0% /sys/fs/cgroup
/dev/sda1                 497M  166M  332M   34% /boot

今回の対象は「/dev/mapper/centos-root」

■lvdisplayコマンドでLogical Volumeの詳細を確認。

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                IuMeqQ-dd1j-73Wo-tZLt-7wYA-KCaB-FZlS2B
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:57 +0900
  LV Status              available
  # open                 2
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                V2bGxj-hmyn-PP1V-RNdJ-hSY1-PVwu-L3ekOr
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:58 +0900
  LV Status              available
  # open                 1
  LV Size                6.71 GiB
  Current LE             1717
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

■Logical Volumeのサイズを拡張。

# lvextend -L +12284 /dev/centos/root
  Size of logical volume centos/root changed from 6.71 GiB (1717 extents) to 18.70 GiB (4788 extents).
  Logical volume root successfully resized

ここの「12284」はvgdisplayで表示されたFree PE / SizeとPE Sizeをかけた値になる
3071 * 4.00 = 12284

■Logical Volumeの確認。

# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                IuMeqQ-dd1j-73Wo-tZLt-7wYA-KCaB-FZlS2B
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:57 +0900
  LV Status              available
  # open                 2
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                V2bGxj-hmyn-PP1V-RNdJ-hSY1-PVwu-L3ekOr
  LV Write Access        read/write
  LV Creation host, time localhost, 2014-08-01 21:31:58 +0900
  LV Status              available
  # open                 1
  LV Size                18.70 GiB
  Current LE             4788
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

【ここからファイルシステムのリサイズ】

■CentOS7でファイルシステムがxfsだったのでresize2fsの代わりにxfs_growfsを使用

# xfs_growfs /dev/centos/root 
meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=439552 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=1758208, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1758208 to 4902912

■出来た!

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    19G  2.5G   17G   14% /
devtmpfs                  236M     0  236M    0% /dev
tmpfs                     245M     0  245M    0% /dev/shm
tmpfs                     245M  4.3M  241M    2% /run
tmpfs                     245M     0  245M    0% /sys/fs/cgroup
/dev/sda1                 497M  166M  332M   34% /boot

■参考ページ

VirtualBoxのゲストOSのディスク容量を増やす
http://te2u.hatenablog.jp/entry/2015/04/20/012914

Vagrant VMのディスクサイズを後から拡張する方法
http://blog.dakatsuka.jp/2014/04/24/vagrant-hdd-resize.html

CentOS 7(XFS)でLVMディスク拡張でハマったこと
http://qiita.com/fetaro/items/d7dc74262633ba474bc8

昔契約したさくらインターネットのVPSでyum-updateonbootがonに 設定されていたのでoffにした件

昔契約したさくらインターネットのVPSでyum-updateonbootがonに
設定されていたのでoffにした。

さくらインターネットのサイトでは初回起動時のみ有効と書いて
あったんだけどなんでだろうか?

https://help.sakura.ad.jp/app/answers/detail/a_id/2126
起動デーモンの項目の「yum-updateonboot」。

今回上記に気づいたのはduplicityでのバックアップが出来なくなって
いたから。

バックアップができなくなったのがサーバの再起動をした日
からだった。

再起動をした理由は「VENOM」の対策のため。
※正確にはサーバを停止してその後管理パネルから起動した。

起動時にかなり時間がかかっていて、RPMをUPDATEする旨の文字が
出ていて気になっていた。

その後はduplicityでバックアップをとろうとすると以下のエラーが出ていた。

Traceback (most recent call last):
  File "/usr/bin/duplicity", line 45, in <module>
    from duplicity import collections
  File "/usr/lib64/python2.6/site-packages/duplicity/collections.py", line 29, in <module>
    from duplicity import path
  File "/usr/lib64/python2.6/site-packages/duplicity/path.py", line 36, in <module>
    from duplicity import librsync
  File "/usr/lib64/python2.6/site-packages/duplicity/librsync.py", line 29, in <module>
    import _librsync
ImportError: librsync.so.1: cannot open shared object file: No such file or directory

結局今回はepelリポジトリを使ってduplicityをyumでインストールしなおしたら正常にバックアップできるようになった。

# yum install duplicity

※もともとは「duplicityをCentOS6.3にインストールするメモ」の方法でインストールしていた。
http://www.mogumagu.com/wp/wordpress/?p=1162

ちなみにOSのバージョンはインストールしたときは

CentOS release 6.2 (Final)

だったのに今みたら以下になっていた。

CentOS release 6.6 (Final)

他にもVPSサーバはあるのになんで1つのサーバだけ設定が違っていたのか謎。