linux

LVM パーティション をrescue モードから操作する

LVMを使っていない場合はrescueモードで起動したあとに # mount /dev/sda1 /mnt/sysimageなどとするだけで良いけど、lvmを使っているとそのままではパーティションが見えないのでmount出来ない。 rescue モード起動時にはlvmパーティション領域が有効になっ…

sysv-rc-conf - debian/ubuntu での起動時のdaemon一覧確認コマンド

RHEL/CentOS/SL 系のchkconfigのdebian/ubuntu版?久々にdebian触ったら完全に忘れてしまっていた。なぜかdefaultで入ってないのでaptで入れておく。 # apt-get install sysv-rc-conf # sysv-rc-conf --list # sysv-rc-conf exim4 off # sysv-rc-conf exim4 …

vnstat を使ってlinuxサーバのtrafficをお手軽に確認する

http://humdi.net/vnstat/ vnStat is a console-based network traffic monitor for Linux and BSD that keeps a log of network traffic for the selected interface(s). サーバのtrafficを真面目に確認/監視したい場合はcacti, mrtg等を使うのが通常だと思…

noVNCでブラウザからvnc接続

お名前ドットコムのvpsで使ってるらしいので使ってみた。HTML5対応のブラウザが必要。 http://kanaka.github.com/noVNC/ VNC client using HTML5 (WebSockets, Canvas) with encryption (wss://) support. 動かす localhost:5901 のvnc portにプロキシさせる…

ip addr addで追加されたaliasアドレスはip addr show で表示されるけどifconfig では表示されない

確か昔keepalivedでvrrpするときにも内部でipコマンド使われてて同じことになった記憶がある。ip コマンドで設定されたものはifconfig では表示されないので、サーバのIP見る時はip addr show で見たほうが確実なのでは、と今更思った。なんで今さら言ってい…

CentOS 6 perl 5.10.1 でPersistentPerl がmake できない

ナズェ? # cpan > look PersistentPerl # make make[1]: ディレクトリ `/root/.cpan/build/PersistentPerl-2.22-FqO72S/src' に入ります make[1]: `all' に対して行うべき事はありません. make[1]: ディレクトリ `/root/.cpan/build/PersistentPerl-2.22-FqO7…

tcp関連の/proc パラメータ復習

/proc/sys/net/ipv4/ 以下のアレ。高負荷時にはチューニングすると良いらしいけど、これを設定して効果が出るような状況にはまだ出くわしたことない。 tcp_fin_timeout default: 60 (秒) tcpのシーケンスでFIN-WAIT2からTIME_WAIT に移行するまでの待ち時間…

シェルスクリプトのdebug tips

シェルスクリプト中でset -x と記述するか、(ba)sh -x の引数をつけて実行すれば、実行されている内容が表示されるので、いちいちecho hogehoge などと書いてまわっていかなくてよい。 hoge.sh #!/bin/sh date $ ./hoge.sh 2012年 7月 31日 月曜日 23:10:14 …

linuxでcpuのマルチコア/HT対応を確認する

最近書くことないので、初歩的なこと書いていくモードにしよう。 cpuのコア数、hyper threading 対応を確認するには/proc/cpuinfo を見たらいい。 processor CPUの論理ID: 同一サーバ上ではuniqueな数字 physical id CPUの物理ID: マルチコア/HTの場合、異な…

libvirt graphicsをvncからspiceに変更する

defaultはVNC。 libvirt host server virt-manager のディスプレイを削除する ハードウェアの追加からgraphics を選んでSPICEサーバを選択 interfaceとport、passwordは適当に設定 client install # yum install spice-client # apt-get install spice-clien…

btrfs のsubvolume のmount

# mkfs.btrfs /dev/sda5 # mount /dev/sda5 /home # btrfs sub create /home/hoge # btrfs sub create /home/fuga # mount /dev/sda5 /mnt -o subvol=hoge(/mntと/home/hogeが同じ内容) extのbindでも似たようなことできると思うけど、今のところ使い道が特…

btrfsでsnapshot作成

btrfsはまだtechnical preview だけど、lvmのsnapshotを使うとI/Oが遅いので代替案としてやってみた。OS: CentOS 6.3 64bit # yum install -y btrfs-progs # mkfs.btrfs /dev/mapper/vg_hoge-lv_home WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL WARNING!…

linux LVM でextパーティションのサイズ変更(拡大/縮小)

man lvm man lvextend man lvreduce man resize2fs あんましlvm使わないので勉強。実験した環境 VG Name vg_hoge LV Name lv_home LV Size 400.00 GiB device /dev/vg_hoge/lv_home ext4(ext3も?)拡大はオンライン(マウントしたまま)で変更可能。縮小はアン…

サーバのSSL CA(認証局)証明書が古くてcurl がエラーになる件

古いサーバにrvmをgithub から取ってこようとしたらエラーになったよ。 新しいサーバ https://raw.github.com へのRedirectも問題なくアクセスできてる。 $ curl -L -I get.rvm.io HTTP/1.1 301 Moved Permanently Server: nginx/1.0.14 Date: Thu, 21 Jun 2…

ohai で linux OSの情報をjsonで出力

http://wiki.opscode.com/display/chef/Ohai http://d.hatena.ne.jp/mikeda/20110918/1316337100 chefを構成するブツの一つらしいけど、単体で使うとkernelのバージョン, cpu, memorylanguages(ruby,perl,python等) のバージョンdevice, ip, mac address/etc…

Test::System::Config で サーバの設定をtest

perldoc Test::Config::System use Test::Config::System tests => 4; check_package('less', 'package less'); check_package('emacs21', 'emacs uninstalled', 1, 'rpm'); check_link('/etc/alternatives/www-browser', '/usr/bin/w3m'); check_file_conte…

fluent と growthforecast を連携させてさくさくグラフを描く

http://blog.nomadscafe.jp/2011/12/growthforecast.html http://d.hatena.ne.jp/tagomoris/20120218/1329558305 http://d.hatena.ne.jp/hogem/20120521/1337610385 cacti はcactiで便利だけど、設定するのに面倒だったりする一方でgrowthforecastはびっくり…

rvmを使ってfluent のinstall memo

RHEL install rvm prefix: /usr/local/rvm # curl -L get.rvm.io | bash -s stable install ruby 1.9.3 # ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux] # source /usr/local/rvm/scripts/rvm # rvm install 1.9.3 #### make ruby-1.9.3 d…

RHELでいつのまにかyumが更新できなくなって困った

サブスクリプションのライセンスは切れてないぜぇ?と思いつつ調べてたら書いてた。 http://jp.redhat.com/promo/doc/faq/2.html 該当のマシーンが、インターネット環境へ継っていない、ネットワークの設定などの理由で、ある一定期間Red Hat Networkと同期…

known_hostsを手動で編集しなくてもssh-keygen -R hostname で良かった / sshのremote hostが変更になってsshでエラーが出るとき

仮想マシンを作っては壊して、などをやっていると良く起こる。仮想マシンじゃなくても物理サーバが壊れて、IPを引き継いで復旧させた場合なども同様。clinetのknown_hostsに登録されているものと、remote hostのsshdの認証鍵が変わっていて、中間者攻撃の可…

guestfish で仮想マシン内のコマンドを実行

http://d.hatena.ne.jp/hogem/20120204/1328321337 guestifshはファイルの読み書きだけだと思ったら、なんと仮想マシン内のコマンドも実行できるようだ。どういう仕組みになってるんだ??? http://libguestfs.org/guestfish.1.html#command 仮想マシンがオ…

cgroup でプロセス毎のDisk (block device) へのI/O の帯域制限 blkio.throttle.*

http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch-Subsystems_and_Tunable_Parameters.html http://www.kernel.org/doc/Documentation/devices.txt /usr/share/doc/kernel-*/Documentation/cgroups/ redhat…

cgroup と libvirtの連携

cgroup有効にしているときにlibvirtdを起動すると、各コントローラ以下の /cgroup/*/libvirt/qemu/"仮想マシン名" が自動で作成されていく、ということを知った。/cgroup/*/libvirt/qemu/"仮想マシン名"/tasks に仮想マシンのqemu-kvmプロセスのpidも書き込…

linuxのコントロールグループ(cgroup)でリソース制御 memo

今更だけど便利そうな機能なので勉強。 http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch-Subsy…

linux bondingのパラメータをオンラインでの変更

できるものとできないものがあるみたい。miimonの数値はオンラインのまま変更可能だった。 # echo 100 > /sys/class/net/bond0/bonding/miimonbondingのmode, xmit_hash_policy 等はinterfaceを停止させないと変更できなかった。 # echo 2 > /sys/class/net/…

linux bonding 時のnicの偏りを調整する

http://d.hatena.ne.jp/rx7/20120412/p1 http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Using_Channel_Bonding.html nicが偏って困ってたらniceなentry見つけた。さすがrx7さん。linux bonding mode=2 (balance-…

socat - Multipurpose relay (SOcket CAT)

netcat がパワーアップしたようなもの? http://www.dest-unreach.org/socat/ http://www.dest-unreach.org/socat/doc/socat.html#EXAMPLES netcatのport forwardが面倒くせーなーと思っていたけど、socatなら名前付きパイプを作らなくても良かった。(といっ…

netcat で port forward

単純にncをパイプで入出力を繋げると、入力はforwardされるけど、出力はclientに返らずに、ncを実行している端末の標準出力に出てしまう。 localhostの8080にきたものを192.168.0.1の80にforward $ nc -l 8080 | nc 192.168.0.1 80これでcilentからnc 10.0.0…

さくらVPSのVNCコンソールの実装

使っているのはsshのtunnel経由でVNC接続するtightvnc。 http://www.tightvnc.com/ssh-java-vnc-viewer.php https://secure.sakura.ad.jp/vpscontrol/main/vnc このhtml ソースのappletのところ。 <param name="SSHHOST" value="vnc@210.224.172.110" /> <param name="HOST" value="localhost" /> <param name="PORT" value="******" /> </param></param></param>

libvirt API を使ってkvm ホストサーバから仮想マシンのコンソールに接続する

仮想マシンの設定で、シリアルコンソールに接続できる設定をするだけ。(物理サーバにメンテ用でシリアルコンソール接続する設定等と基本的に同じ) 仮想マシン: SL 6.2 の例 /etc/securetty echo "ttyS0" >> /etc/securetty /boot/grub/grub.conf serial --sp…