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.

osoljp 2011.08

965 views

Published on

osoljp_2011.08

Published in: Technology
  • Be the first to comment

  • Be the first to like this

osoljp 2011.08

  1. 1. Solaris10こんな感じで使ってますzone/ZFS 無しには戻れない! 1
  2. 2. agenda• 自己紹介• 注意事項&お願い• サービス概要• システム概要 1. Web 2. Application 3. Database 4. Storage• まとめ 2
  3. 3. 自己紹介(配布用)• @twovs• 無線LAN装置の開発(1999~2004)• オンラインゲームのシステム管理者(2004~)• ただし,ゲームには全く興味無し・・・• ZFS 最高! 3
  4. 4. 自己紹介(プロジェクタ用) 4
  5. 5. 注意事項&お願いこの物語はフィクションであり、実在の人物・団体とは一切関係ありません• 固有名詞や数値は公表しないでください• 色々アドバイス待ってます!• 突っ込み大歓迎! 5
  6. 6. サービス概要 6
  7. 7. 注意事項&お願いこの物語はフィクションであり、実在の人物・団体とは一切関係ありません 7
  8. 8. システム概要(1) 8
  9. 9. システム概要(2)~2004年 Intel/Linux 2005年 Intel/Linux VMware 2008年 SPARC/Solaris10 zone(UFS => ZFS) 2010年 SPARC/Solaris10 zone(ZFS clone) 2011年 ・・・ and crossbow• Linux : Solaris = x:x (host)• Intel : SPARC = x:x (Hardware)• 基本的に新サービスは zone で作る• 面倒な時は VMware で(面倒な理由は色々) 9
  10. 10. システム概要(3) Tier 3 Database Tier 2 Applications Tier 1 Web Oracle® Solaris Administration: Network Interfaces and NetworkVirtualization PartNo: 821–1458–02 P.307 FIGURE 15-2から抜粋 10
  11. 11. 1-1.Web/概要 Tier 1 Web 11
  12. 12. 1-2.Web/処理概要• HTTP/HTTPS の処理• ReWrire/ReverseProxy••• 12
  13. 13. 1-3.Web/SrcPort• ReverseProxy の SrcPort 足りない → local-zone でサーバ台数を増やす App ・・・ App HTTP (TCP SrcPort)<65535 :12345 Web HTTPS client client ・・・ client 13
  14. 14. 1-4.Web/まとめ○ SSL速い Cryptographic Accelerator Units on the T1 and T2 processors○ local-zone 増やしてスケール可能×× Oracle 買収後 SJSWS のライセンス変更 bundle 版の再インストールが不可・・・ 14
  15. 15. 2-1.App/概要 Tier 2 Applications 15
  16. 16. 2-2.App/処理概要• client からのリクエストを処理 DB サーバや別の App サーバと通信• サーバ(local-zone)=サービス• サービス範囲/障害範囲を分離• Java VM 16
  17. 17. 2-3.App/local-zone• 1つの global に xx 以上の local-zone• 以前は CPU/Memory より local-HDD 不足• {zoneadm,zfs} clone が超便利! [global]# zoneadm list -v | wc -l xx [global]# zfs list -t filesystem | head NAME USED AVAIL REFER MOUNTPOINT rpool 54.7G 39.8G 24.5K /rpool rpool/export 54.7G 39.8G 20K /export rpool/export/zones 54.7G 39.8G 18.1G /export/zones rpool/export/zones/AAAAA01 85.9M 39.8G 253M /export/zones/AAAAA01 rpool/export/zones/BBBBB01 79.4M 39.8G 247M /export/zones/BBBBB01 rpool/export/zones/CCCCC01 128.4M 39.8G 451M /export/zones/CCCCC01 rpool/export/zones/DDDDD01 89.4M 39.8G 257M /export/zones/DDDDD01 rpool/export/zones/EEEEE01 50.6M 39.8G 67.4M /export/zones/EEEEE01• local-zone なら(比較的)容易にmigration可能• global-zone でサービス提供禁止! 17
  18. 18. 2-4.App/ディスク• RAID-1+spare の合計3本• local-HDD を RAID-5/Z/Z2 に? • HDD の slot はあるけど • 速度も可用性もいらない • 消えても良いデータだけ• zonepath を共有ディスクに? • 複雑になるし • 18
  19. 19. 2-5.App/リソース• サーバは単に CPU と Memory の器• リソース=CPU×Memory×Network• CPU pooladm/poolcfg で• Memory ミドルウェアの設定で• Network crossbow では管理できる/管理する?[質問&相談] crossbow がスゴイ&楽しいのは分かった で,実環境でどう使うと便利なの? 何かアイディアあります? 19
  20. 20. 2-6.App/pooladm/poolcfg• zone 固有の設定を少なくしたいので• 1(min) < CPU < 128(max) で設定• 割り当て数を監視しておいて• ヤバそうな zone だけ個別調整 [global]# pooladm –e [global]# pooladm –s [global]# poolcfg -c create pset pset_AAAAA01 ¥ (uint pset.min = 1;uint pset.max = 128)‘ [global]# poolcfg -c create pool pool_AAAAA01‘ [global]# poolcfg -c associate pool pool_AAAAA01 ¥ (pset pset_AAAAA01) 20
  21. 21. 2-7.App/pset [global]# poolstat -r pset id pool type rid rset min max size used load 24 pool_AAAAA01 pset 24 pset_AAAAA01 10 128 48 0.00 4.16 18 pool_BBBBB01 pset 18 pset_BBBBB01 1 128 11 0.00 1.10 15 pool_CCCCC01 pset 15 pset_CCCCC01 1 128 8 0.00 0.98 0 pool_default pset -1 pset_default 1 66K 5 0.00 4.24 7 pool_DDDDD01 pset 7 pset_DDDDD01 1 128 5 0.00 0.42 (snip) AAAAA01 ※CPU割り当て数 BBBBB01 CCCCC01 DDDDD01 21
  22. 22. 2-8.App/zonecfg [global]# zonecfg -z AAAAA01 export create -b set zonepath=/export/zones/AAAAA01 set autoboot=true set pool=pool_AAAAA01 set ip-type=shared add inherit-pkg-dir set dir=/lib end add inherit-pkg-dir set dir=/platform end add inherit-pkg-dir set dir=/sbin end add inherit-pkg-dir set dir=/usr end add inherit-pkg-dir set dir=/opt end add net set address=10.123.49.1/24 set physical=aggr49010 end add net set address=10.123.50.1/24 set physical=aggr50010 end 22
  23. 23. 2-9.App/MAC Address• ip-type=shared だと MAC Addr 共通• Switch の LAG/Port-channel 設定に注意! • MAC Addr の hash だと Port が偏る • src-dst-ip などへの変更は必須 Catalyst6500(config)#port-channel load-balance ? dst-ip Dst IP Addr dst-mac Dst Mac Addr dst-port Dst TCP/UDP Port mpls Load Balancing for MPLS packets src-dst-ip Src XOR Dst IP Addr src-dst-mac Src XOR Dst Mac Addr src-dst-port Src XOR Dst TCP/UDP Port src-ip Src IP Addr src-mac Src Mac Addr src-port Src TCP/UDP Port 23
  24. 24. 2-10.App/MTU• local-zone の MTU 設定できず global の cron で ifconfig…(ダサい)• vnic で exclusive にすれば OK [global]# cat .../set_MTU_of_local-zone.sh #!/bin/sh (snip) while [ ${alias} -le ${max} ] do ifconfig aggr11001:${alias} mtu 1500 ifconfig aggr12001:${alias} mtu 1500 ifconfig aggr21001:${alias} mtu 9000 ifconfig aggr22001:${alias} mtu 9000 alias=`expr ${alias} + 1` done 24
  25. 25. 2-11.App/まとめ○ リソース分離 Solaris Container(local-zone)任せ○ 最小リソースでサービスを提供可能× local-zone の MTU 設定しづらい(できない)- crossbow には色々期待 25
  26. 26. 3-1.DB/概要 Tier 3 Database 26
  27. 27. 3-2.DB/速い処理・遅い処理• OracleDatabase • zone 未使用/当時は RAC 未サポート • パッチ当てるの大変/BE に期待 • 速い OLTP処理 • 遅い batch/dump/restore• PostgreSQL • zone 上に 1インスタンス(1サービス) • 速い OLTP処理 • 遅い batch/dump/restore 27
  28. 28. 3-3.DB/SunCluster• クラスタ内の global 全てに zone を配置• 各 zone はクラスタ内の 1カ所だけで起動• 落ちたら別の global で zone が起動[SunCluster01]# zoneadm list -vc | grep running | grep -v global | wc -l 10[SunCluster01]# zoneadm list –vc | grep installed | wc -l 20[SunCluster02]# zoneadm list –vc | grep running | grep -v global | wc -l 10[SunCluster02]# zoneadm list –vc | grep installed | wc -l 20[SunCluster03]# zoneadm list –vc | grep running | grep -v global | wc -l 10[SunCluster03]# zoneadm list –vc | grep installed | wc -l 20 28
  29. 29. 3-4.DB/SunCluster• 正常時 • 障害発生時zone01-10 zone11-30 zone01-15 zone16-30 running installed running installed SunCluster01 SunCluster01zone01-10 zone11-20 zone21-30 zone01-10 zone11-20 zone21-30installed running installed installed running installed SunCluster02 SunCluster02 zone01-20 zone21-30 zone01-15 zone16-30 installed running installed running SunCluster03 SunCluster03 29
  30. 30. 3-5.DB/手動SunCluster• サービス用は SunCluster で自動復旧• それ以外は 手動SunCluster で手動復旧• patch が当たるように 待機用 zone は installed に(attach する)• clone 用の snapshot を取る時は configured に(detach する) 30
  31. 31. 3-6.DB/まとめ× OracleDB 高い・とにかく高い でも買う(こーゆー商売をしたい)× ハードウェアを並べれば PostgreSQL のが速い&安いんじゃね?○ 手動 SunCluster(Cold-Standby)も十分便利 ZFS clone + zone のおかげ! 31
  32. 32. 4-1.Storage/概要 Storage 32
  33. 33. 4-2.Storage/NAS with ZFS• ZFS on Intel Server はシングルポイント• 落ちてサービス影響が無い部分でのみ使用 [ZFS-NAS]# cat /etc/release Solaris 10 10/09 s10x_u8wos_08a X86 Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 16 September 2009 [ZFS-NAS]# zpool get version zfspool NAME PROPERTY VALUE SOURCE zfspool version 15 default [ZFS-NAS]# zfs get compressratio NAME PROPERTY VALUE SOURCE rpool compressratio 1.28x - rpool/ROOT compressratio 1.00x - (snip) rpool/xxx compressratio 1.29x - rpool/xxx/home compressratio 3.45x - rpool/xxx/log compressratio 5.86x - 33
  34. 34. 4-3.Storage/WAFLと比較• ZFS と WAFL(NetApp) • filesystem としての機能はほぼ同じ • 性能は・・・ハードウェア依存?• ZFS は filesystem 以外も多機能 • Solaris などの OS があって便利 • DTrace (使いこなせてないけど)• NetApp は cluster で可用性 UP • IB(など)で head 間を接続し • TCP張りっ放しで fail-over 可能 34
  35. 35. まとめ• Solairs10 ステキ!• ZFS/zone 超便利!• Solaris11 ライセンスが微妙か?• OpenIndiana 超期待!• crosbow どう使ってやろうか・・・ DSR(Direct Server Return)のために vnic で ip-type=exclusive は決定!? 参考/Yahoo! Tech Blog >ヤフーネットワーク10年 http://bit.ly/onpiJr 35
  36. 36. この物語はフィクションであり、実在の人物・団体とは一切関係ありません END 36

×