Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
GDBでの 
kernel読み入門 
+おまけ 
@y0t4
自己紹介 
• 太田 陽祐 
• Ingress Enlightened Agent 
L8 
• 琉球大学院生 
• Twitter: y0t4 
• 浅く広くな人
今日話すこと 
• GDBでのkernel読み入門 
• (停電におびえながら)学科システムの 
OSメジャーバージョンアップをした話 
• 未対応なWindowsにvCenterとか入れた話 
時間が許す限り話していこうと思います
• GDBでのkernel読み入門 
• (停電におびえながら)学科システムの 
OSメジャーバージョンアップをした話 
• 未対応なWindowsにvCenterとか入れた話
• GDBでのkernel読み入門 
• (停電におびえながら)学科システムの 
OSメジャーバージョンアップをした話 
• 未対応なWindowsにvCenterとか入れた話 
「入門」とあるように、ポイントや 
引っかかる(引っかかっている...
動機 
• 「Linux kernelのソースとか読んでみたいよね」 
! 
_人人人人人人_ 
> 単純明快 < 
‾Y^Y^Y^Y^Y‾ 
GDBでのkernel読み入門
ソースを読む方法 
• エディタで読む 
• デバッガで読む 
• パッチで読む 
• printfで読む 
kernelの実行に則して読みたかったので 
デバッガを使うことに決定 
GDBでのkernel読み入門
環境 
• OS: CentOS 6.5 (kernel 3.9.2) 
• 去年の講義で使ったものを流用したので古めなバージョン 
• CPU: Intel(R) Xeon(R) CPU 
X5650@2.67GHz 
GDBでのkernel...
やったこと 
1. KVMホストとVMを用意 
2. KGDB機能を有効化したkernelをビルド 
3. ビルドしたkernelをVMに適用 
4. KGDBのbootパラメータを設定 
5. -sオプションを使ってVM起動 
6. ホストか...
構成図 
ホストコンピュータ 
$ gdb vmlinux 
(gdb)target remote :1234 
kernel 
VM 
kernel 
KGDB 
qemu-kvm 
GDBでのkernel読み入門 
• KVMホストと 
V...
KGDB 
• Linux kernelのデバッガフロントエンド 
$ make menuconfig 
Kernel hacking -> 
Compile the kernel with debug info 
KGDB: kernel d...
qemu-kvm 
• KVMに対応したCPUエミュレータ 
$ qemu-kvm --help 
-s shorthand for -gdb tcp::1234 
-gdb dev wait for gdb connection on ‘de...
qemu-kvm 
qemu-kvmはオプションが多くコマンドが長い 
GDBでのkernel読み入門
qemu-kvm 
• LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin /usr/libexec/qemu-kvm -name 
kernelvm -S -M rhel6.4.0 -enable-kvm ...
libvirt 
“libvirtは仮想機械の制御を抽象化したライブラリで 
ある。(wikipedia)” 
! 
• 起動 
• virsh start [vm名] 
! 
<qemu:commandline> 
<qemu:arg val...
gdb 
• VMを起動したら 
$ gdb vmlinux 
(gdb) target remote :1234 
でgdbからVMのkernelにアクセスできる 
! 
これで読む準備は終わり 
GDBでのkernel読み入門
ハマった場所 
• architecture 
• opaque pointer 
• compilerの最適化 
• macroなソースコード 
• SIGTRAP 
• KGDB: Waiting for remote debugger 
...
architecture 
• “Remote 'g' packet reply is too long:” 
とかいうエラーが出る 
• (gdb) set architecture i386:x86-64:intel 
で解決 
GDBでの...
opaque pointer 
• (gdb) p *msg->msg_name 
Attempt to dereference a generic pointer. 
(gdb) p msg->msg_name 
$1 = (void *) ...
compilerの最適化 
• 読みたい変数とかを print すると 
<value optimized out> 
• Makefileに 
EXTRA_CFLAGS += -O0 
を記述 
GDBでのkernel読み入門
compilerの最適化 
• 読みたい変数とかを print すると 
<value optimized out> 
• Makefileに 
EXTRA_CFLAGS += -O0 
を記述 
mm/ に-O0を記述すると 
kernel ...
compilerの最適化 
• 助けを求める 
GDBでのkernel読み入門
compilerの最適化 
• 助けを求める 
GDBでのkernel読み入門
compilerの最適化 
• 助けを求める 
最適化でprintできなくても 
レジスタに値は残ってるでしょ 
それを読むんだよ 
それがバイナリハッカー 
GDBでのkernel読み入門
compilerの最適化 
• 助けを求める 
最適化でprintできなくても 
レジスタに値は残ってるでしょ 
それを読むんだよ 
それがバイナリハッカー 
な...なるほど...(゚∇゚;) 
GDBでのkernel読み入門
compilerの最適化 
• 助けを求める 
最適化でprintできなくても 
レジスタに値は残ってるでしょ 
それを読むんだよ 
それがバイナリハッカー 
解決してないけど解決 
GDBでのkernel読み入門 
な...なるほど...(゚...
macroなソース 
• (gdb) l 
308 BUILDIO(b, b, char) 
(gdb) l BUILDIO 
Function "BUILDIO" not defined. (マクロだし) 
GDBでのkernel読み入門
macroなソース 
• (gdb) l 
308 BUILDIO(b, b, char) 
(gdb) l BUILDIO 
Function "BUILDIO" not defined. (マクロだし) 
マクロ展開して 
make頑張って...
macroなソース 
• (gdb) l 
308 BUILDIO(b, b, char) 
(gdb) l BUILDIO 
Function "BUILDIO" not defined. (マクロだし) 
マクロ展開して 
make頑張って...
SIGTRAP 
• breakpointをdelした後に 
Program received signal SIGTRAP, Trace/ 
breakpoint trap. 
と別の場所に飛ばされる(ことがある) 
それっぽいページ 
は発...
KGDB: Waiting for remote 
debugger 
• エラー再現が上手くいかないエラー 
VM側のコンソール上に上記のエラーが出力 
解決方法模索中です... 
GDBでのkernel読み入門
今後の読む方針 
ていうかどこから読んでるの 
GDBでのkernel読み入門
今後の読む方針 
ていうかどこから読んでるの 
nmをsockでgrepしてでてきた 私 
sock_create辺りから読んでます 
GDBでのkernel読み入門
今後の読む方針 
ていうかどこから読んでるの 
nmをsockでgrepしてでてきた 私 
sock_create辺りから読んでます 
それはセンスがない 
read, writeから読むのが楽だから 
GDBでのkernel読み入門
今後の読む方針 
ていうかどこから読んでるの 
nmをsockでgrepしてでてきた 私 
sock_create辺りから読んでます 
それはセンスがない 
read, writeから読むのが楽だから 
GDBでのkernel読み入門 
なるほ...
まとめ 
• 濁流に飲まれてる感 
• いろんなところで突っかかって楽しい 
• 知らない人だけでやると 
どう手をつけたらいいか分からない 
• 誰か知ってる人が近くに居ると良さそう 
GDBでのkernel読み入門 
gdbを諦めて 
本を...
• linuxのkernelをgdbで追いかけたかった話 
• (停電におびえながら)学科システムの 
OSメジャーバージョンアップをした話 
• 未対応なWindowsにvCenterとか入れた話
きっかけ 
• 「CentOS6が出てそろそろ1年くらい経つし、 
夏休みでちょうどいいからそろそろ 
CentOS5->6にしたいよね」 
• という話がシステム管理なチーム内で出て、 
バージョンアップすることに。 
学科システムアップグレ...
前提知識 
• 琉球大学情報工学科では学科システムを学生が 
管理している 
• 以前は「学生実験」の1テーマとして、 
現在は希望者制 
• 学科システムはDNSやDHCP、Webなどの 
サーバ群から学科ネットワーク、学生へのVM貸 
し出...
やること 
• 基幹サーバ群のOSメジャーバージョンアップ 
• Web, DNS*, DHCP, LDAP*, SMTP, IMAP, 
学科システムアップグレード 
RADIUS, SHELL 
• 基幹サーバはESX上のVM
懸念事項 
学科システムアップグレード 
• 引き継ぎ資料が無い 
• 人手不足(学生5人)
懸念事項 
学科システムアップグレード 
• 引き継ぎ資料が無い 
• 人手不足(学生5人) 
• 作業日に台風直撃コース
琉球大学と台風 
学科システムアップグレード 
• 大学構内はとにかく台風に弱い 
• すぐ停電する 
• 全然復旧しない
琉球大学と台風 
学科システムアップグレード 
• 大学構内はとにかく台風に弱い 
• すぐ停電する 
• 全然復旧しない 
ここから見える景色全部 
電気ついてるのに 
大学は停電中とか...
懸念事項 
学科システムアップグレード 
• 引き継ぎ資料が無い 
• 人手不足(学生5人) 
• 作業日に台風直撃コース 
つらいけどグーグル様に...
懸念事項 
学科システムアップグレード 
• 引き継ぎ資料が無い 
• 人手不足(学生5人) 
• 作業日に台風直撃コース
懸念事項 
学科システムアップグレード 
• 引き継ぎ資料が無い 
• 人手不足(学生5人) 
• 作業日に台風直撃コース 
ヤバい
いや、待てよ 
学科システムアップグレード 
• 旧サーバと新サーバを 
停電になった時に入れ替え 
ればいいのでは 
• そうすればユーザにはいつ 
入れ替えたのか 
分からない
(暴風)雨天決行 
今思えば完全に間違った判断でした。 
学科システムアップグレード
RTA開始 
• 旧サーバから新サーバへconfをコピーしたり 
• CentOS5から6でconfの置き場所が変わってる 
• 必要なのかそうでないのか分からない設定群 
学科システムアップグレード 
• ドキュメントがないため 
• 当然な...
RTA開始 
• 旧サーバから新サーバへconfをコピーしたり 
• CentOS5から6でconfの置き場所が変わってる 
• 必要なのかそうでないのか分からない設定群 
学科システムアップグレード 
• ドキュメントがないため 
• 当然な...
作業時間 
学科システムアップグレード 
• 2012年 9月 15日 18:00 ~
作業時間 
学科システムアップグレード 
• 2012年 9月 15日 18:00 ~
作業時間 
学科システムアップグレード 
• 2012年 9月 15日 18:00 ~
幸運だったこと 
• 事前準備でパッケージは入れていた 
• 全サーバ共通項目 
の洗い出し 
学科システムアップグレード
引き継ぎ大事 
• 一部のサーバにはNICが2つついてた 
• VLAN帯が違うサーバ 
• LDAPの独自スキーマ 
• DNSはpostgresqlから引っ張ってくる 
• DHCPはmac-addr認証 
学科システムアップグレード
困難を乗り越え 
• なんとかサーバが起動するところまではきた 
• ちょっと休憩しよう 
学科システムアップグレード
困難を乗り越え 
• なんとかサーバが起動するところまではきた 
• ちょっと休憩しよう 
学科システムアップグレード 
_人人人人_ 
> 停電 < 
‾Y^Y^Y‾
残作業 
• 旧サーバから新サーバへの切り替え 
学科システムアップグレード
残作業 
• 旧サーバから新サーバへの切り替え 
• 旧サーバと新サーバを 
停電になった時に入れ替えれ 
ばいいのでは 
• そうすればユーザにはいつ入 
れ替えたのか 
分からない 
学科システムアップグレード 
この作戦は 
どうなった
でも、大丈夫 
学科システムアップグレード
でも、大丈夫 
学科システムアップグレード
でも、大丈夫 
学科システムアップグレード
台風当たり年でした 
学科システムアップグレード
結局 
いろいろありましたが 
バージョンアップは無事終了 
学科システムアップグレード
まとめ 
• (暴風)雨天決行はやめましょう 
心身に悪いです 
• ある程度事前準備はしておきましょう 
学科システムアップグレード
• linuxのkernelをgdbで追いかけたかった話 
• (停電におびえながら)学科システムの 
OSメジャーバージョンアップをした話 
• 未対応なWindowsにvCenterとか入れた話
Upcoming SlideShare
Loading in …5
×

kernel/vm@okinawa 2014

577 views

Published on

2014/09/21に行われたkernelvm沖縄での発表資料です。

Published in: Engineering
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

kernel/vm@okinawa 2014

  1. 1. GDBでの kernel読み入門 +おまけ @y0t4
  2. 2. 自己紹介 • 太田 陽祐 • Ingress Enlightened Agent L8 • 琉球大学院生 • Twitter: y0t4 • 浅く広くな人
  3. 3. 今日話すこと • GDBでのkernel読み入門 • (停電におびえながら)学科システムの OSメジャーバージョンアップをした話 • 未対応なWindowsにvCenterとか入れた話 時間が許す限り話していこうと思います
  4. 4. • GDBでのkernel読み入門 • (停電におびえながら)学科システムの OSメジャーバージョンアップをした話 • 未対応なWindowsにvCenterとか入れた話
  5. 5. • GDBでのkernel読み入門 • (停電におびえながら)学科システムの OSメジャーバージョンアップをした話 • 未対応なWindowsにvCenterとか入れた話 「入門」とあるように、ポイントや 引っかかる(引っかかっている)部分を 紹介します。
  6. 6. 動機 • 「Linux kernelのソースとか読んでみたいよね」 ! _人人人人人人_ > 単純明快 < ‾Y^Y^Y^Y^Y‾ GDBでのkernel読み入門
  7. 7. ソースを読む方法 • エディタで読む • デバッガで読む • パッチで読む • printfで読む kernelの実行に則して読みたかったので デバッガを使うことに決定 GDBでのkernel読み入門
  8. 8. 環境 • OS: CentOS 6.5 (kernel 3.9.2) • 去年の講義で使ったものを流用したので古めなバージョン • CPU: Intel(R) Xeon(R) CPU X5650@2.67GHz GDBでのkernel読み入門
  9. 9. やったこと 1. KVMホストとVMを用意 2. KGDB機能を有効化したkernelをビルド 3. ビルドしたkernelをVMに適用 4. KGDBのbootパラメータを設定 5. -sオプションを使ってVM起動 6. ホストからgdbで接続する(symbolはvmlinux) 7. 読む -> とりあえずネットワーク通信部分とか GDBでのkernel読み入門
  10. 10. 構成図 ホストコンピュータ $ gdb vmlinux (gdb)target remote :1234 kernel VM kernel KGDB qemu-kvm GDBでのkernel読み入門 • KVMホストと VMの関係は 図のような感じ
  11. 11. KGDB • Linux kernelのデバッガフロントエンド $ make menuconfig Kernel hacking -> Compile the kernel with debug info KGDB: kernel debugger -> KGDB: use kgdb over the serial console 以下、カーネルコマンドライン部に追記 kgdboc=ttyS0,115200 console=ttyS0,115200 GDBでのkernel読み入門
  12. 12. qemu-kvm • KVMに対応したCPUエミュレータ $ qemu-kvm --help -s shorthand for -gdb tcp::1234 -gdb dev wait for gdb connection on ‘dev' ! qemu-kvmに-sオプションをつけて起動すると (gdb)target remote :1234 で接続可能 GDBでのkernel読み入門
  13. 13. qemu-kvm qemu-kvmはオプションが多くコマンドが長い GDBでのkernel読み入門
  14. 14. qemu-kvm • LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin /usr/libexec/qemu-kvm -name kernelvm -S -M rhel6.4.0 -enable-kvm -m 8192 -smp 8,sockets=8,cores=1,threads=1 -uuid 98767ead-25f4-3f15-5807-fa099bbb0dfd - nographic -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/ libvirt/qemu/kernelvm.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown - device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/tmp/ Centos.img,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci, scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive, bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=22,id=hostnet0,vhost=on,vhostfd=24 -device virtio-net-pci, netdev=hostnet0,id=net0,mac=52:54:00:89:7c:1b,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device virtio-balloon- pci,id=balloon0,bus=pci.0,addr=0x5 (/var/log/libvirt/qemu/kernelvm.imgより) GDBでのkernel読み入門
  15. 15. libvirt “libvirtは仮想機械の制御を抽象化したライブラリで ある。(wikipedia)” ! • 起動 • virsh start [vm名] ! <qemu:commandline> <qemu:arg value='-s'/> </qemu:commandline> GDBでのkernel読み入門
  16. 16. gdb • VMを起動したら $ gdb vmlinux (gdb) target remote :1234 でgdbからVMのkernelにアクセスできる ! これで読む準備は終わり GDBでのkernel読み入門
  17. 17. ハマった場所 • architecture • opaque pointer • compilerの最適化 • macroなソースコード • SIGTRAP • KGDB: Waiting for remote debugger GDBでのkernel読み入門
  18. 18. architecture • “Remote 'g' packet reply is too long:” とかいうエラーが出る • (gdb) set architecture i386:x86-64:intel で解決 GDBでのkernel読み入門
  19. 19. opaque pointer • (gdb) p *msg->msg_name Attempt to dereference a generic pointer. (gdb) p msg->msg_name $1 = (void *) 0xffffffff8105ec01 • データが未定義なだけなので、 定義されてからpするとかで解決 GDBでのkernel読み入門
  20. 20. compilerの最適化 • 読みたい変数とかを print すると <value optimized out> • Makefileに EXTRA_CFLAGS += -O0 を記述 GDBでのkernel読み入門
  21. 21. compilerの最適化 • 読みたい変数とかを print すると <value optimized out> • Makefileに EXTRA_CFLAGS += -O0 を記述 mm/ に-O0を記述すると kernel makeが通らない!(net/は通る) GDBでのkernel読み入門
  22. 22. compilerの最適化 • 助けを求める GDBでのkernel読み入門
  23. 23. compilerの最適化 • 助けを求める GDBでのkernel読み入門
  24. 24. compilerの最適化 • 助けを求める 最適化でprintできなくても レジスタに値は残ってるでしょ それを読むんだよ それがバイナリハッカー GDBでのkernel読み入門
  25. 25. compilerの最適化 • 助けを求める 最適化でprintできなくても レジスタに値は残ってるでしょ それを読むんだよ それがバイナリハッカー な...なるほど...(゚∇゚;) GDBでのkernel読み入門
  26. 26. compilerの最適化 • 助けを求める 最適化でprintできなくても レジスタに値は残ってるでしょ それを読むんだよ それがバイナリハッカー 解決してないけど解決 GDBでのkernel読み入門 な...なるほど...(゚∇゚;)
  27. 27. macroなソース • (gdb) l 308 BUILDIO(b, b, char) (gdb) l BUILDIO Function "BUILDIO" not defined. (マクロだし) GDBでのkernel読み入門
  28. 28. macroなソース • (gdb) l 308 BUILDIO(b, b, char) (gdb) l BUILDIO Function "BUILDIO" not defined. (マクロだし) マクロ展開して make頑張ってみたら GDBでのkernel読み入門
  29. 29. macroなソース • (gdb) l 308 BUILDIO(b, b, char) (gdb) l BUILDIO Function "BUILDIO" not defined. (マクロだし) マクロ展開して make頑張ってみたら GDBでのkernel読み入門 な...なるほど...(゚∇゚;) (g3オプションとかじゃダメかな...)
  30. 30. SIGTRAP • breakpointをdelした後に Program received signal SIGTRAP, Trace/ breakpoint trap. と別の場所に飛ばされる(ことがある) それっぽいページ は発見 GDBでのkernel読み入門 http://stackoverflow.com/questions/9809413/program-received- signal-sigtrap-trace-breakpoint-trap
  31. 31. KGDB: Waiting for remote debugger • エラー再現が上手くいかないエラー VM側のコンソール上に上記のエラーが出力 解決方法模索中です... GDBでのkernel読み入門
  32. 32. 今後の読む方針 ていうかどこから読んでるの GDBでのkernel読み入門
  33. 33. 今後の読む方針 ていうかどこから読んでるの nmをsockでgrepしてでてきた 私 sock_create辺りから読んでます GDBでのkernel読み入門
  34. 34. 今後の読む方針 ていうかどこから読んでるの nmをsockでgrepしてでてきた 私 sock_create辺りから読んでます それはセンスがない read, writeから読むのが楽だから GDBでのkernel読み入門
  35. 35. 今後の読む方針 ていうかどこから読んでるの nmをsockでgrepしてでてきた 私 sock_create辺りから読んでます それはセンスがない read, writeから読むのが楽だから GDBでのkernel読み入門 なるほど!!!
  36. 36. まとめ • 濁流に飲まれてる感 • いろんなところで突っかかって楽しい • 知らない人だけでやると どう手をつけたらいいか分からない • 誰か知ってる人が近くに居ると良さそう GDBでのkernel読み入門 gdbを諦めて 本を読むという手も...
  37. 37. • linuxのkernelをgdbで追いかけたかった話 • (停電におびえながら)学科システムの OSメジャーバージョンアップをした話 • 未対応なWindowsにvCenterとか入れた話
  38. 38. きっかけ • 「CentOS6が出てそろそろ1年くらい経つし、 夏休みでちょうどいいからそろそろ CentOS5->6にしたいよね」 • という話がシステム管理なチーム内で出て、 バージョンアップすることに。 学科システムアップグレード
  39. 39. 前提知識 • 琉球大学情報工学科では学科システムを学生が 管理している • 以前は「学生実験」の1テーマとして、 現在は希望者制 • 学科システムはDNSやDHCP、Webなどの サーバ群から学科ネットワーク、学生へのVM貸 し出し、先生への対応など広い範囲を担当 学科システムアップグレード
  40. 40. やること • 基幹サーバ群のOSメジャーバージョンアップ • Web, DNS*, DHCP, LDAP*, SMTP, IMAP, 学科システムアップグレード RADIUS, SHELL • 基幹サーバはESX上のVM
  41. 41. 懸念事項 学科システムアップグレード • 引き継ぎ資料が無い • 人手不足(学生5人)
  42. 42. 懸念事項 学科システムアップグレード • 引き継ぎ資料が無い • 人手不足(学生5人) • 作業日に台風直撃コース
  43. 43. 琉球大学と台風 学科システムアップグレード • 大学構内はとにかく台風に弱い • すぐ停電する • 全然復旧しない
  44. 44. 琉球大学と台風 学科システムアップグレード • 大学構内はとにかく台風に弱い • すぐ停電する • 全然復旧しない ここから見える景色全部 電気ついてるのに 大学は停電中とか...
  45. 45. 懸念事項 学科システムアップグレード • 引き継ぎ資料が無い • 人手不足(学生5人) • 作業日に台風直撃コース つらいけどグーグル様に...
  46. 46. 懸念事項 学科システムアップグレード • 引き継ぎ資料が無い • 人手不足(学生5人) • 作業日に台風直撃コース
  47. 47. 懸念事項 学科システムアップグレード • 引き継ぎ資料が無い • 人手不足(学生5人) • 作業日に台風直撃コース ヤバい
  48. 48. いや、待てよ 学科システムアップグレード • 旧サーバと新サーバを 停電になった時に入れ替え ればいいのでは • そうすればユーザにはいつ 入れ替えたのか 分からない
  49. 49. (暴風)雨天決行 今思えば完全に間違った判断でした。 学科システムアップグレード
  50. 50. RTA開始 • 旧サーバから新サーバへconfをコピーしたり • CentOS5から6でconfの置き場所が変わってる • 必要なのかそうでないのか分からない設定群 学科システムアップグレード • ドキュメントがないため • 当然なかなか上手くいかず !
  51. 51. RTA開始 • 旧サーバから新サーバへconfをコピーしたり • CentOS5から6でconfの置き場所が変わってる • 必要なのかそうでないのか分からない設定群 学科システムアップグレード • ドキュメントがないため • 当然なかなか上手くいかず • 迫る台風 • 停電の恐怖
  52. 52. 作業時間 学科システムアップグレード • 2012年 9月 15日 18:00 ~
  53. 53. 作業時間 学科システムアップグレード • 2012年 9月 15日 18:00 ~
  54. 54. 作業時間 学科システムアップグレード • 2012年 9月 15日 18:00 ~
  55. 55. 幸運だったこと • 事前準備でパッケージは入れていた • 全サーバ共通項目 の洗い出し 学科システムアップグレード
  56. 56. 引き継ぎ大事 • 一部のサーバにはNICが2つついてた • VLAN帯が違うサーバ • LDAPの独自スキーマ • DNSはpostgresqlから引っ張ってくる • DHCPはmac-addr認証 学科システムアップグレード
  57. 57. 困難を乗り越え • なんとかサーバが起動するところまではきた • ちょっと休憩しよう 学科システムアップグレード
  58. 58. 困難を乗り越え • なんとかサーバが起動するところまではきた • ちょっと休憩しよう 学科システムアップグレード _人人人人_ > 停電 < ‾Y^Y^Y‾
  59. 59. 残作業 • 旧サーバから新サーバへの切り替え 学科システムアップグレード
  60. 60. 残作業 • 旧サーバから新サーバへの切り替え • 旧サーバと新サーバを 停電になった時に入れ替えれ ばいいのでは • そうすればユーザにはいつ入 れ替えたのか 分からない 学科システムアップグレード この作戦は どうなった
  61. 61. でも、大丈夫 学科システムアップグレード
  62. 62. でも、大丈夫 学科システムアップグレード
  63. 63. でも、大丈夫 学科システムアップグレード
  64. 64. 台風当たり年でした 学科システムアップグレード
  65. 65. 結局 いろいろありましたが バージョンアップは無事終了 学科システムアップグレード
  66. 66. まとめ • (暴風)雨天決行はやめましょう 心身に悪いです • ある程度事前準備はしておきましょう 学科システムアップグレード
  67. 67. • linuxのkernelをgdbで追いかけたかった話 • (停電におびえながら)学科システムの OSメジャーバージョンアップをした話 • 未対応なWindowsにvCenterとか入れた話

×