2014年9月23日火曜日

AzureにDインスタンス(SSDベースかつCPU性能アップ)がきた

SSDきましたね。
さっそくD1にCentOS7入れて、lshwコマンドでハードウェアを見てみました。
もちろん、これだけではSSDかどうかはわかりませんがw

CPUはIntelになってますね。
smpboot: CPU0: Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz (fam: 06, model: 2d, stepping: 07)

以下、lshwコマンドの抜粋です。

    description: Desktop Computer
    product: Virtual Machine
    vendor: Microsoft Corporation
    version: 7.0
    serial: 0000-0016-7211-8467-7193-8608-97
    width: 64 bits
    capabilities: smbios-2.3 dmi-2.3 vsyscall32
    configuration: boot=normal chassis=desktop uuid=80CEDF23-283E-6245-8A6B-E93FBC650846
  *-core
       description: Motherboard
       product: Virtual Machine
       vendor: Microsoft Corporation
       physical id: 0
       version: 7.0
       serial: 0000-0011-6135-1979-7359-9976-12
     *-firmware
          description: BIOS
          vendor: American Megatrends Inc.
          physical id: 0
          version: 090006
          date: 05/23/2012
          size: 64KiB
          capacity: 192KiB
          capabilities: isa pci pnp upgrade shadowing escd cdboot bootselect socketedrom edd int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer int10video agp ls120boot zipboot biosbootspecification
     *-cpu:0
          description: CPU
          product: Xeon (None)
          vendor: Intel Corp.
          physical id: 5
          bus info: cpu@0
          version: Intel(R) Xeon(R) CPU E5-2660 @ 2.20GHz
          serial: None
          slot: None
          size: 2200MHz
          capacity: 4GHz
          width: 64 bits
          clock: 100MHz
          capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx x86-64 constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx hypervisor lahf_lm xsaveopt

     *-memory
          description: System Memory
          physical id: 51
          size: 3584MiB
        *-bank:0
             product: None
             vendor: Microsoft
             physical id: 0
             serial: None
             slot: M0
             size: 512MiB
        *-bank:1
             product: None
             vendor: Microsoft
             physical id: 1
             serial: None
             slot: M1
             size: 3GiB

     *-pci
          description: Host bridge
          product: 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (AGP disabled)
          vendor: Intel Corporation
          physical id: 100
          bus info: pci@0000:00:00.0
          version: 03
          width: 32 bits
          clock: 33MHz
        *-isa
             description: ISA bridge
             product: 82371AB/EB/MB PIIX4 ISA
             vendor: Intel Corporation
             physical id: 7
             bus info: pci@0000:00:07.0
             version: 01
             width: 32 bits
             clock: 33MHz
             capabilities: isa bus_master
             configuration: latency=0
        *-ide
             description: IDE interface
             product: 82371AB/EB/MB PIIX4 IDE
             vendor: Intel Corporation
             physical id: 7.1
             bus info: pci@0000:00:07.1
             version: 01
             width: 32 bits
             clock: 33MHz
             capabilities: ide bus_master
             configuration: driver=ata_piix latency=0
             resources: irq:0 ioport:1f0(size=8) ioport:3f6 ioport:170(size=8) ioport:376 ioport:ffa0(size=16)
        *-bridge UNCLAIMED
             description: Bridge
             product: 82371AB/EB/MB PIIX4 ACPI
             vendor: Intel Corporation
             physical id: 7.3
             bus info: pci@0000:00:07.3
             version: 02
             width: 32 bits
             clock: 33MHz
             capabilities: bridge
             configuration: latency=0
        *-display
             description: VGA compatible controller
             product: Hyper-V virtual VGA
             vendor: Microsoft Corporation
             physical id: 8
             bus info: pci@0000:00:08.0
             version: 00
             width: 32 bits
             clock: 33MHz
             capabilities: vga_controller bus_master rom
             configuration: driver=hyperv_fb latency=0
             resources: irq:11 memory:f8000000-fbffffff
     *-scsi:0
          physical id: 1
          logical name: scsi1
          capabilities: emulated
        *-cdrom
             description: DVD reader
             physical id: 0.0.0
             bus info: scsi@1:0.0.0
             logical name: /dev/cdrom
             logical name: /dev/sr0
             capabilities: audio dvd
             configuration: status=ready
     *-scsi:1
          physical id: 2
          logical name: scsi2
        *-disk
             description: SCSI Disk
             physical id: 0.0.0
             bus info: scsi@2:0.0.0
             logical name: /dev/sda
             size: 30GiB (32GB)
             capabilities: partitioned partitioned:dos
             configuration: logicalsectorsize=512 sectorsize=512 signature=00083660
           *-volume:0
                description: EXT4 volume
                vendor: Linux
                physical id: 1
                bus info: scsi@2:0.0.0,1
                logical name: /dev/sda1
                logical name: /
                version: 1.0
                serial: 427e4cf4-85d2-4b58-ac5b-a5c12d0b70dd
                size: 29GiB
                capacity: 29GiB
                capabilities: primary bootable journaled extended_attributes large_files huge_files dir_nlink recover 64bit extents ext4 ext2 initialized
                configuration: created=2014-07-22 19:41:22 filesystem=ext4 lastmountpoint=/ modified=2014-09-23 03:28:19 mount.fstype=ext4 mount.options=rw,seclabel,relatime,data=ordered mounted=2014-09-23 03:28:19 state=mounted
           *-volume:1
                description: Linux swap volume
                physical id: 2
                bus info: scsi@2:0.0.0,2
                logical name: /dev/sda2
                version: 1
                serial: 89aabb77-9b57-40cd-8469-da8c6016cd5d
                size: 1000MiB
                capacity: 1000MiB
                capabilities: primary nofs swap initialized
                configuration: filesystem=swap pagesize=4096
     *-scsi:2
          physical id: 3
          logical name: scsi3
        *-disk
             description: SCSI Disk
             physical id: 0.1.0
             bus info: scsi@3:0.1.0
             logical name: /dev/sdb
             size: 50GiB (53GB)
             capabilities: partitioned partitioned:dos
             configuration: logicalsectorsize=512 sectorsize=512 signature=2c4f248a
           *-volume
                description: EXT4 volume
                vendor: Linux
                physical id: 1
                bus info: scsi@3:0.1.0,1
                logical name: /dev/sdb1
                logical name: /mnt/resource
                version: 1.0
                serial: 4b9cdb96-30c6-4db3-adc8-e7b3ac28a021
                size: 49GiB
                capacity: 49GiB
                capabilities: primary bootable journaled extended_attributes large_files huge_files dir_nlink recover 64bit extents ext4 ext2 initialized
                configuration: created=2014-09-23 03:28:42 filesystem=ext4 lastmountpoint=/mnt/resource modified=2014-09-23 03:28:46 mount.fstype=ext4 mount.options=rw,seclabel,relatime,data=ordered mounted=2014-09-23 03:28:46 state=mounted
  *-network
       description: Ethernet interface
       physical id: 1
       logical name: eth0
       serial: 00:15:5d:10:e4:94
       capabilities: ethernet physical
       configuration: broadcast=yes driver=hv_netvsc firmware=N/A ip=100.78.16.68 link=yes multicast=yes

2014年9月13日土曜日

Docker で Node OS を動かせ on Azure

Node OS というLinuxディストリビューションが出ました。
コマンドがNode.jsで実装されているとのこと。
http://node-os.com/

もちろん、Azureで動かしてみます。
ただし、公式サイトのドキュメントではDockerで動作させているので、
それに倣ってDockerでやってみます。

もの凄くシンプルに、以下の通りに実行します。

# docker -i -t nodeos/nodeos

イメージをダウンロードして、デフォルトのシェルである「nsh」が実行されます。
どんなコマンドがあるのか、/binと/usr/binの下を見てみます。

/ # ls /bin/
[ 'init', 'ip', 'node', 'npkg', 'npm', 'sh' ]

/ # ls /usr/bin

[ 'env' ]

まだコマンドは少ないですね。
パッケージは「npkg」コマンドでインストールできます。
パッケージはここにあるようです。

なお、サンプルにあった bin-ncurl はインストールに失敗してました…

次は /etc の下を見てみます。
/ # ls /etc/
[ 'hostname', 'hosts', 'mtab', 'resolv.conf' ]

必要最小限でしょうか。

さて、コマンドは /root/bin にもあるようです。
その中のcatコマンドのソースを覗いてみましょう。

/root/bin # cat cat
#!/usr/bin/env node

var fs = require('fs');
var fi = 2;

var arg;

function cat( file ){
  var stream = fs.createReadStream( file )
  stream.on('close',function(){
    if( arg = process.argv[fi++] ) cat(arg);
  });
  stream.pipe(process.stdout);
}

if( arg = process.argv[fi++] ) cat(arg);

マジでNode.jsですw

胸熱なディストリビューションがまた増えましたね。


2014年9月1日月曜日

AzureでDockerやってみよう(IaaS)

AzureのLinux仮想マシンでも、もちろんDockerを動かす事が可能です。
今ならUbuntuの方が楽な気もしますが、ここはCentOS6.5でやってみましょう。

DockerはEPELからyumでインストールしたいので、以下のようにrpmをインストールします。

$ sudo rpm -i http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

これで、/etc/yum.repos.d/epel.repo というファイルができてEPELを利用できます。
docker-io をyumでインストールするとすぐに使えます。

$ sudo yum install docker-io
$ sudo chkconfig docker on
$ sudo service docker start

これでDockerが使えるようになります。
以下のコマンドを実行すると、Dockerイメージを勝手に取ってきてコンテナを実行します。

$ sudo docker run -i -t centos /bin/bash
Unable to find image 'centos' locally
Pulling repository centos
b157b77b1a65: Download complete 
511136ea3c5a: Download complete 
34e94e67e63a: Download complete 
bash-4.2# uname -a
Linux a9732c8635f9 2.6.32-431.17.1.el6.centos.plus.x86_64 #1 SMP Thu May 8 02:18:11 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
bash-4.2# cat /etc/redhat-release 
CentOS Linux release 7.0.1406 (Core) 

今回はCentOSのlatestを実行しているのでCentOS7ですが、kernelバージョンが2.6.32となっており、ホストのKernelと同じバージョンが実行されている事がわかります。
なお、ホストがCentOS6の場合systemdが動作しませんので、"centos:centos6"などと指定してCentOS6で運用するのが良いかと思います。

他のクラウドなどで実行されているコンテナをそのまま持ってくることが可能ですので、ぜひお試しを。