ブログ移設しました。

bloggerから記事を移設しました。


HUGOで記事を書いてみると思いのほか書きやすかったので移動。

火曜日, 5月 07, 2019

ブログを移設しました。

PV数がもともと低いのでより書きやすいCMSがないかなと思った際にシンプルなHUGOを選択することになりました。

ブログURLはいかになります。
http://workblog.sunaneko.tech/
https://workblog.sunaneko.tech/

これからこのブログを育てていきたいと思います。

月曜日, 2月 25, 2019

HDDをコピーしてLVMも拡張する

初めに注意事項だよ。
コマンドの説明はないからちゃんとman見てやるんだよ。
あと、LVMの説明やらパーティションの説明はないから、確認してからやるんだよ。
HDD系の作業はデータ丸ごとぶっ飛ばす可能性があるから本当に本当に注意の上やるんだよ。

てなことで始まり始まり。

VMで練習するよ。
ストレージは以下のような感じ。
centos7ってところにOSをインストールする。

インストールするったらインストールする。

インストール後OSから、ディスクの認識状況を確認。
blkidってまだパーティション切っていないところを認識してくれないんかもね。

 じゃあ、とりあえずシャットダウンだ。

そのあと、lubuntuのディスクを差し込んで。
 インストールしないでターミナルを開く。
ディスクの認識状況を確認


ここからは面倒なので、sshdをインストールしてIP割り当てを行って作業を行う。

ディスク認識状況確認

sudo blkid
/dev/sr0: UUID="2018-04-26-18-40-24-00" LABEL="Lubuntu 18.04 LTS amd64" TYPE="iso9660" PTUUID="67e97428" PTTYPE="dos"
/dev/loop0: TYPE="squashfs"
/dev/sda1: UUID="8ede7911-9e96-4f12-a226-fc325ce227e2" TYPE="xfs" PARTUUID="000d50e4-01"
/dev/sda2: UUID="ezf8v9-DB0v-GNeg-RsNe-kK1L-j3xB-J4C7pG" TYPE="LVM2_member" PARTUUID="000d50e4-02"
/dev/zram0: UUID="cd9bb84f-b4e0-4a34-b95f-58a985ea074a" TYPE="swap"
/dev/zram1: UUID="e5e38316-c372-4ba5-ac62-1fa41296cf66" TYPE="swap"
/dev/zram2: UUID="3b798fca-c367-429e-8cdb-1d0700bfeb9b" TYPE="swap"
/dev/zram3: UUID="e502d3f9-61e9-4795-824a-c83cf9c54aec" TYPE="swap"
/dev/mapper/centos-swap: UUID="52585050-0010-4510-a5fa-1177abed8538" TYPE="swap"
/dev/mapper/centos-root: UUID="a7451b3a-1e88-446e-804d-e75d62b151e4" TYPE="xfs"

lubuntu@lubuntu:~$ sudo parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  xfs          boot
 2      1075MB  8590MB  7515MB  primary               lvm


Error: /dev/sdb: unrecognised disk label
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:


sdbが何も触っていないディスクだから文句言われているね。


DiskToDiskコピー

この名称は私しか使っていないかもしれない。 というか名称がないと思う。
ディスクからディスクに情報をコピーしていくよ。

 sudo apt install  gddrescue

ddrescueについての記事。
http://dspckn.blogspot.com/2017/10/ddrescue.html

sudo ddrescue -f -n -v /dev/sda /dev/sdb
GNU ddrescue 1.22
About to copy 8589 MBytes from '/dev/sda' to '/dev/sdb'
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors       Initial skip size: 256 sectors
Sector size: 512 Bytes
     ipos:  272105 kB, non-trimmed:        0 B,  current rate:  56688 kB/s
     opos:  272105 kB, non-scraped:        0 B,  average rate:  45350 kB/s
non-tried:    8317 MB,  bad-sector:        0 B,    error rate:       0 B/s
  rescued:  272105 kB,   bad areas:        0,        run time:          6s
pct rescued:    3.16%, read errors:        0,  remaining time:          3m
                              time since last successful read:          0s


終わるまで待つ。

切れるとまずいから、nohupかtmux起動しておいた方が良いかもね。

 nohup sudo ddrescue -f -n -v /dev/sda /dev/sdb &
[1] 3875
     ipos:    5267 MB, non-trimmed:        0 B,  current rate:    779 MB/st'
     opos:    5267 MB, non-scraped:        0 B,  average rate:    181 MB/s
non-tried:    3321 MB,  bad-sector:        0 B,    error rate:       0 B/s
  rescued:    5267 MB,   bad areas:        0,        run time:         29s
pct rescued:   61.32%, read errors:        0,  remaining time:         19s
                              time since last successful read:          0s
Copying non-tried blocks... Pass 1 (forwards)
lubuntu@lubuntu:~$ tail -f  nohup.out

コピーが終わったら、シャットダウンして、元のCentOSのはいったHDDを外して起動確認。
うん。起動できる。

LVMの拡張

起動後、シャットダウンして、今度は、LVMと増えた分を/に割り当てしよう。

再度lubuntuのCDをセットして起動。
gpartedで、LVM領域をHDD合わせてあげる。

そのあと、コマンドラインで、LVMの領域を拡張していく。

詳細な説明は使っているコマンドろググって内容を確認してね。
ここではコマンドと結果のみを記載するよ。

現状確認

lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                fH8DOA-Roz1-YD00-45g1-vVds-7QUh-ZrDHdV
  LV Write Access        read/write
  LV Creation host, time localhost, 2019-02-22 16:57:35 +0000
  LV Status              available
  # open                 0
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                W12VUx-Wyl3-BrGH-tBuP-sGYq-CxIh-tWTNRk
  LV Write Access        read/write
  LV Creation host, time localhost, 2019-02-22 16:57:36 +0000
  LV Status              available
  # open                 0
  LV Size                <6.20 GiB
  Current LE             1586
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

fdisk -l
Disk /dev/loop0: 967.6 MiB, 1014571008 bytes, 1981584 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000d50e4

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *       2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 16777215 14678016   7G 8e Linux LVM

20GのHDDなのに、7Gしか割り当てがないね。悲しいね。

LVMのパーティション自体を拡張

parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  1075MB  1074MB  primary  xfs          boot
 2      1075MB  8590MB  7515MB  primary               lvm

(parted) resizepart 2 100%
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 41943040s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start     End        Size       Type     File system  Flags
 1      2048s     2099199s   2097152s   primary  xfs          boot
 2      2099200s  41943039s  39843840s  primary               lvm

(parted) unit MiB
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start    End       Size      Type     File system  Flags
 1      1.00MiB  1025MiB   1024MiB   primary  xfs          boot
 2      1025MiB  20480MiB  19455MiB  primary               lvm

OKパーティション自体の領域拡張は完了したね。


LVMのリサイズ

PVのリサイズ

pvscan
  PV /dev/sda2   VG centos          lvm2 [<7.00 GiB / 0    free]
  Total: 1 [<7.00 GiB] / in use: 1 [<7.00 GiB] / in no VG: 0 [0   ]

pvresize /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

pvscan
  PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 12.00 GiB free]
  Total: 1 [<19.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 0 [0   ]

LVのリサイズ

lvscan
  ACTIVE            '/dev/centos/swap' [820.00 MiB] inherit
  ACTIVE            '/dev/centos/root' [<6.20 GiB] inherit

lvdisplay /dev/centos/root
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                W12VUx-Wyl3-BrGH-tBuP-sGYq-CxIh-tWTNRk
  LV Write Access        read/write
  LV Creation host, time localhost, 2019-02-22 16:57:36 +0000
  LV Status              available
  # open                 0
  LV Size                <6.20 GiB
  Current LE             1586
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

lvextend -l 100%FREE /dev/centos/root
  Size of logical volume centos/root changed from <6.20 GiB (1586 extents) to 12.00 GiB (3072 extents).
  Logical volume centos/root successfully resized.

lvscan
  ACTIVE            '/dev/centos/swap' [820.00 MiB] inherit
  ACTIVE            '/dev/centos/root' [12.00 GiB] inherit

lvextend -L +3G /dev/centos/root
  Size of logical volume centos/root changed from 12.00 GiB (3072 extents) to 15.00 GiB (3840 extents).
何回か繰り返していくよ。(なんで、上の100%FREEでダメなのかはわからないけど)

pvscan
  PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 0    free]
  Total: 1 [<19.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 0 [0   ]

ファイルシステムの拡張

root@lubuntu:/home/lubuntu# mount /dev/mapper/centos-root /mnt/root/
root@lubuntu:/home/lubuntu# lvchange --available y ^C
root@lubuntu:/home/lubuntu# xfs_growfs /mnt/root/
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=406016 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0 rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=1624064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
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 1624064 to 4769792

じゃあチャックしようか。
root@lubuntu:/home/lubuntu# umount /mnt/root/
root@lubuntu:/home/lubuntu# xfs_repair -n /dev/centos/root
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan (but don't clear) agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
No modify flag set, skipping phase 5
Phase 6 - check inode connectivity...
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify link counts...
No modify flag set, skipping filesystem flush and exiting.

上記の場合はやらなくてもいいかもしれないけど、
tmux new -s manager
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
No modify flag set, skipping phase 5
Phase 6 - check inode connectivity...
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify link counts...
No modify flag set, skipping filesystem flush and exiting.
root@lubuntu:/home/lubuntu# xfs_repair /dev/centos/root
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - agno = 4
        - agno = 5
        - agno = 6
        - agno = 7
        - agno = 8
        - agno = 9
        - agno = 10
        - agno = 11
Phase 5 - rebuild AG headers and trees...
        - reset superblock...
Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done

これで、再起動をかけて。
[luna@localhost ~]$ df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    19G 1003M   18G    6% /
devtmpfs                  484M     0  484M    0% /dev
tmpfs                     496M     0  496M    0% /dev/shm
tmpfs                     496M  6.7M  489M    2% /run
tmpfs                     496M     0  496M    0% /sys/fs/cgroup
/dev/sda1                1014M  132M  883M   13% /boot
tmpfs                     100M     0  100M    0% /run/user/1000

うん。19Gあるしこれでいいかな。

日曜日, 2月 24, 2019

ふと自作PC(ジャンク)を組んでみた が 動かなかったので全部新品パーツでトライする

事の始まり

たまたまRyzen7でジャンクがあったので買ってみた。
Ryzen7 2700X 3.70Ghz
https://www.amd.com/ja/products/cpu/amd-ryzen-7-2700x
最大メモリー速度2933MHz
メモリー・チャネル2
7000円

そんで、MBも併せてジャンクでいいでしょ!ってことで。購入

ASUS ROG STRIX B350-F GAMING
https://www.asus.com/jp/Motherboards/ROG-STRIX-B350-F-GAMING/specifications/
7000円

んでも、私は自作PCがないので、それ以外のパーツも買っていくことにした。

CPUファン:https://kakaku.com/item/K0000966603/
\3,227
Mem: https://kakaku.com/shop/2027/
\21,780
電源:https://kakaku.com/item/K0001026568/
\6,100
ケース:http://s.kakaku.com/item/J0000026025/
\4,339
GPU:ASRock Phantom Gaming D Radeon RX58
\23,980
os:win10home
https://www.amazon.co.jp/gp/aw/d.html?ie=UTF8&a=B0776K4V9X&ascsubtag=kakaku-sp-pcsoft-22_B0776K4V9X_K0001020024_542_8f10ce8955ff4e8795c02f9cdbdf67129&creativeASIN=B0776K4V9X&lc=msn&linkCode=msn&m=AN1VRQENFRJN5&tag=kakaku-subtag-22&uid=NULLGWDOCOMO
\14,956

今回ジャンク品なのに使っているパーツはそこそこ金かかっています。

組んでみたが

本日色々到着したので、くみ上げてみると、電源が入らないオチ。
BIOSもいかない、FANも回らない。
今までの経験上でこれは、MBか電源、電源は新品なので信頼してみると、マザー?が怪しい。
ただ、CPUが死んでいるパターンも考えられそうだけど、CPUが死んでいる時でもファンは回りそうだよねぇってことでMBを疑ってる。

でも、いろいろ面倒なので(この時点でジャンク道から離れた)、MBもCPUも新品を買うことにした。
作業マシンをスペックが良いやつが欲しいと思っていたからちょうどいい機会なのでね。

B450 GAMING PLUS
\10,580
https://www.yodobashi.com/product/100000001003955473/?kad1=1&utm_medium=cpc&utm_source=kakaku&utm_term=B450+GAMING+PLUS+%5B%E3%83%9E%E3%82%B6%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%5D&xfr=kad

AMD CPU Ryzen 7 2700X with Wraith Prism cooler YD270XBGAFBOX
\33,378
https://www.amazon.co.jp/dp/B07B428M7F/ref=cm_sw_em_r_mt_dp_U_MjICCbQE28FM1

現在までの合計金額:
\117,384

ジャンクは楽しいか?

ジャンクは動くかどうかがわからないのが楽しいといいたいところだが、実際に動かないとへこむ。(今回のような新品パーツだらけのジャンクを組む時には値段が張ってるので)
でも、安い構成でちゃんと動くように組めた時は楽しんでます。 頭の中では、そろばんはじきつつ、動いた時を想像しつつ動くかどうかわからないパーツをセレクトするわけです。
自作PC離れていた皆様、AMDで久々にどうですか?値段は結構安めなんで、ジャンクじゃなくても結構安い感じで組めますよ。

金曜日, 2月 15, 2019

wifiのセキュリティ

ひょんなことで、wifiセキュリティについて調査をすることになりました。

経過をこちらに書いていきます。

見つけたツール群:

辞書で総当たり攻撃かける系
https://github.com/JPaulMora/Pyrit

Pyritより賢いし、押し込み強盗系ではないものも対応
これを使って攻撃仕掛けてみる方がはやそう。
https://github.com/v1s1t0r1sh3r3/airgeddon
攻撃の様子
https://www.youtube.com/watch?v=NTxPpfabAqc
https://www.youtube.com/watch?v=SY0WMHTCCOM

Aircrack-ngとJohn the Ripper
https://www.youtube.com/watch?v=0ABD7wi9Fck
Aircrack-ng
https://www.aircrack-ng.org/
John the Ripper
https://qiita.com/phase-d/items/61e45740bde489bbbb85

とっても面白そうなので、結果が分かったらまとめたいと思います。

script kiddyになれるかもしれん!

月曜日, 12月 31, 2018

KVMとVirtualBox Linux上ではどっちが早いの?

またまた環境周りで試してみたネタです。
Modern IEがまだ残っていたので試したくなりました。

先に結論

KVMよりVirtualBoxのほうが早かった。
コアxHT分認識している=>VirtualBox
書き込み速度も早い=>VirtualBox
コアの認識しているものが少ないので、ゲストOSがWindowsのせいでうまく動かないとかは、、あるかも。(VM作るときにOS種別聞いてくるし)
ただ、書き込み速度はVirtualBoxのほうが早かったので、VirtualBoxに這い寄りたい所存です。

VMを用意

まずは、Modern IEからイメージをダウンロード(名称変わっていますね。5日ブラウザ検証するかもしれないからとりあえず全種類ダウンロードしておくよ。)
その後、上記のイメージをインポート。

KVM用のイメージ用意

その後、下記を元にKVM用のイメージに変換する。
結構時間がかかるので放置しましょう。
VMware のディスクイメージ (VMDK) を KVM (qemu) で使えるように変換する - Kenichi Maehashi's Blog 

KVMへインポート

KVM managerでインポートで新規VMとして作成
NBM2 - VirtualBoxからKVMへと仮想イメージ移行した話

性能比較

今回Windowsで以下で紹介されているツールのうち、cinebentch、CrystalDiskMarkでパフォーマンス計測を行おうと思います。
Windowsのベンチマーク測定に便利なツール4選 | Yuichiro Suzuki Reports

検証環境は以下の通り。
cat /proc/meminfo
MemTotal:        8070104 kB
cat /proc/cpuinfo
model name      : Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz

各VMはKVM、Virtualboxともに2048MByte、コアは4つ
使用するイメージは「IE11 - Win7」
※WindowsUpdateは途中で当たらないように回線は切断して検証。

検証結果ですが、結果的には、Virtualboxが早かった。

VirtualBox




 KVM

 





Vagrantで使う際にvagrant upするときにVirtualboxが少しもたついている感じがしたのでKVMに期待、また安定性ってKVMのほうが高そうだったので結構期待しておりましたが、性能的に半分程度に収まってしまったので移行はしなくても良いという判断です。

ただ、KVM初心者なのでもしかするとOS側に見せるコア数がホストOSのHTで動いたものをベースに動かせる?かもしれませんが、GUIで設定がなさそうだったので今回はいいやとしました。

サーバーonサーバーするときにKVMが安定しているとわかればそのときに考えたいともいます。

日曜日, 12月 30, 2018

DeepLearning周りの調査

特に何かのプロジェクトで使うというわけではないのだけど、Deep learningに興味が出たので調査を開始した。

とりあえず

とりあえず(形から入りたかったので)Neural Compute Stick 2こちらを購入。
買う前に全然調べないで買ったので、まず、調べてみるうちにわかったことを書いてみる。

これは、Edge(末端の装置)で使うものでOpenVINOっていうのがIntel系のDeep learning用のSDKが動く。
OpenVINOはIntel系CPUの一部で動くよ。(see: System Requirements)

あれ。。。Neural Compute Stick 2を別に書く必要はなかった。

Deep Learningについて浅く知ってみる

何してくれているの?

そもそも、Deep Learningについてはよく知らないのだけど、重み付けをしてくれるための賢いシステムくらいにしか思っていない。

「機械学習」と「ディープラーニング」は何が違うのか? | MUFG Innovation Hub
うん。大体想像どおり。
ディープラーニング(Deep Learning)とは?【入門編】 | LeapMind BLOG 
機械学習のDeepLearningがあるんだったよね。と確認のために調べてみると、AIの中に機械学習があるのか。 AIって組み合わせて作るもんだと思った。

DeepLearningってコード書けばいいんじゃないよね。

これすごいな、大枠理解がこれだけでできそう。

で、どうやって推論しているのかなと思っていたときに動画をぼけーっとFireTVで見ているといいのが見つかりました。
数式がおおよそこうなっているからこういうことが言いたいんだよね。がわかるのだけど、 数式を細かく紐解けないということに気づいた(つまり概念理解できない)
ので、やっぱり、数学もちゃんとやらないといけないね。

DeepLearningで必要な知識は?

数学ないとこれ使えなくね?(推論なんで、どうやって動いているか全然わからない状態で使っていいものじゃないと思うの)と思って調べるとなるほどなるほど。

自分がすすめる上でのメモとして一旦この記事を書きました。
多分、Neural Compute Stic 2 以外について書いてあるものは一度見ておいて「あぁ。これが必要なんだな。」とすればすすめる方針が建てられそうだ。

まず、私はコードを書く力はあるので、高校数学と統計をさらっと見直します。(動画の説明の意味をちゃんと理解したい)

木曜日, 6月 14, 2018

サーバー周りの勉強の仕方 part1

退社前にサーバーのことを引き継がないといけないのだが、いかんせん他のプロジェクトの時間を使って整備しているがゆえに手順書は運用手順書しかない。
そんな中、そもそもサーバーの扱い方がわからないとそんな自体に直面したときに動けないことがわかりました。

サーバーの扱い方を知るまでに私がやったこと振り返り体系的にまとめることにしました。

まず、インストールしてみる
次にやりたいことは何かを考える
やりたいことをするため、または、そのオーダーを実現させるためには何が必要かを考える→手段
手段が分かったらその手段の使い方を調べる
手段がどう構成されてるかを調べる
構成されているものも大抵は手段の一つなので、更に調べる

これを繰り返すと恐らくOSまでは行き着く、もしかすると、一回目の手段の段階でOSかもしれない。

体系的に言えば
OSの基本的とされる機能を使うことを知る(すでにこの段階でアプリケーションを使うことも多い)
 エディタで編集する
 ユーザーの作り方
 ファイヤーウォール
 ディスククゥオータ

つまり、基本的なコマンド全部なんだけど、必要になったらこういう機能を提供するアプリケーション、OSの機能がないか?と調べる
あまり時間はかけない、不要なサーバーで試す、または、知ってる人にチャットを飛ばすといい。
しばらくするとチャットを飛ばすのさえ億劫になるほど情報は世の中に溢れていることに気づく。

そのOSに乗るものを知る(アプリケーション)
 デーモン(ssh,apache)
アプリケーションのインストール方法(手段の入手方法)
 パッケージマネージャー → 色々なパッケージマネージャがある
 単にダウンロードして使う → バイナリで単体で動くかも、必要なライブラリが他にあるかも
 ビルドする → パッケージマネージャーからインストールするだけでは足りない場合や、何故かパッケージマネージャーで入れるなとか言い出す時

ここまでが構築段階と定義で必要なものとする。
次が面倒なところ、運用・管理、それの決定元になるポリシー策定。

例えば
ユーザーは誰が作っていいのか
ディスクの使用量は
検出のしきい値は
セキュリティ的なポイントは
ログ監査はどうするか

これらが無いと単なる作業者は動いてくれないというか、全く報告が上がらないかまたは、全部報告してくる。

システムを作っておしまいじゃないのがいわゆるサーバーのめんどいところ。
むしろここさえジャッジしてくれれば、はいはい、だけで作業は進む。
アプリ開発も同じだけどね。

と、概論的なところは書いたので次の書き込みで具体的例をとって手段を調べるのにはどうすればいいかを書いていこうと思います。
いつまで、そこの人たちが運用してくれてるかは分からないけど。

木曜日, 4月 05, 2018

デバイスないときに使えるサービスについて

Android端末で試験ターゲットとする実機が手元にないときのお話

案件でAndroid端末で確認するときにどうすれば手元にない状態どうすれば試験できるかを考えてみた。


  1. AVD
  2. その他のエミュレータ
  3. 他のサービス
AVD,エミュレータで事足りるとしたらそれでいいとして。
マシンスペック的に厳しいよとか、あとは実機じゃないとねー。となった時のことを考慮してみる。

AWS Device Farm

料金は無料分を使えばいいとして、次にテストできる環境は以下の通りのようです。
you can interact with real Android and iOS devices from your browser or run automated tests written in popular frameworks like Appium, Espresso, and XCTest.

なので、実機を操作して手動でテストを実施するのは無理。

ほかのサービス

ほかのサービスはどうなんだろう?と思って探しているとまとめてくれている人がいました。

数かなりありますが、結構なお値段してびっくりです。。。

土曜日, 3月 24, 2018

開いているソースの場所を開く(Android Studio)

ソースの名前はわかっているのだけど、パッケージ名で迷子になってしまうことが多いです。

Javaの人の名前空間把握すげぇと思いながら、表示されているパスを追いかけてたどり着いておりました。

でも、AndroidStudioにはありましたよ。開いているファイルまで飛ぶ機能。
これで毎度パスを確認しなくて済む。。。

Android SDKインストール(CUI)

Android SDKって結構壊れることが多いんですね。

なので、インストール方法(GUIによらない)を調べました。
検索してもさっと出てこなかったのでいかに記述します。(多分これでインストールは大丈夫だと思う)

インストール対象抽出:
tools\bin\sdkmanager.bat --list --verbose
 その後、ファイルからインストールしたいパッケージだけ選ぶ
インストール:
tools\bin\sdkmanager.bat --sdk_root=H:\android\sdk --package_file=H:\androidsdk\sdk\list
アップデート:
tools\bin\sdkmanager.bat --sdk_root=H:\android\sdk --update

なお、すごい古い環境だと、android.batでやるみたいな記事がありましたね。

以上です。

火曜日, 10月 10, 2017

DB環境を考えてみたい

初めに

AWS環境下でEC2 on MySQL Clusterを使っている案件があるんですけど、どうしても運用的なことが出てくる場合があります。

なので、Amazon RDS - Amazon Auroraで運用意した場合と、MySQL Clusterを考えてみてましょう。

めんどくさくなってしまったので途中書きなぐっています、後述するまとめを見てください。

最小構成で考えてみると、MySQL Cluster / ってこんな構成になると思います。

費用面、運用面からメリットデメリットを考えてみたいと思います。

費用面

AWS見積ツールでDB01,DB02分のみを考えてみると
毎月オンデマンドで$80程高くなる(つまり1台40$増加)と。
http://calculator.s3.amazonaws.com/index.html#s=RDS&r=IAD&key=calc-DB6FE757-ECCD-4D05-8D96-8FDEE7A7B291

この辺をどう見るか次第でしょうな。

運用面

リカバリーもバックアップもコマンドとコンソールの違いはあれどできますね。
EC2上に構築したCluster環境の場合はサーバー管理者が止めない運用を心掛けるのは当然ですが、実際問題人手が足りないよの場合はあって。

運用面でRDSのほうが当然分がありますよね。
RDS(aurora)触っていないから詳細は分かりませんが、RDSのほうが敷居がだいぶ低い感じします。

まとめ

MySQL Cluster

メリット
好きな構成が取れる
準同期構成をとれること

デメリット
RDSとは違いこちらが保守してやる手間暇が発生
コマンド一発で済むエディションもあるけど、年間ライセンス考えたらきっとCluster Managerは使えないことが多いので、運用担当者はClusterのローリングスタートの順番や適用できる範囲を抑えておく必要がある。(マニュアルパイロット!)

RDS

メリット
保守運用の手間がいらない(RDBMS自体のチューニングは当たり前として)

デメリット
準同期に相当するレプリケーションはないっぽい(マスター・スレーブ構成、書き込みはマスターのみ)
 ⇒ ただ、レプリカも障害があったらマスターに昇格するとかあるので、その辺は流石。
しかし、すでにある場合は、リードオンリーのものとライトもある場合とを考えないといけないってことなので、実装状況次第では使えないなぁ。

所感

全然まとめていないけど、適用しようとしていたのは、準同期が前提で書かれているなぁと思った段階でまとめるのがめんどくなったので、もういいやになりました。 ありがとうございます。




全然関係ない話なんですけど、サーバーリソース監視ツールってあまり知らなったのでこういう記事見つけた時には若干心躍りました。
CloudWatchだけでいいじゃん。きっといろいろな理由でこれはダメなんです。
サーバースペックの足りているいないも考えないといけないですし。

キャンペーンとかやった期間のリザルトが残り続けてほしかったり、通知の方法を細かく変えれるとかしないと、夜も寝れない人が増えちゃうからね。

木曜日, 4月 27, 2017

プアなマシンにubuntuいれて、LVMでその後、hibernateも有効化

おはようございます。具志です。

Macbookがベッドから落ちてしばらく経ちます。
E420は知人のおじさんに譲りました。
現在パソコンは、Aspire one 132でクライアントマシンしています。

最近ネット環境が変わったせいでポート開放ができなくなり、AWSやらkagoyaやら外部サービスで開発環境を低価格で作れないか、模索しておりました。

ただ、低価格で作れたとしても、RDPでアクセスする以上通信が大変なことになるのですよ。

なので、私は考えました。

Apire oneで開発すればいいと。
eMMCは残念なことに30Gしかないですけども。

Windowsではできなかった、LVMの仕組み使えばひとつのディスクとして見せられる!とそう思い立って構築しておりました。

その時の記録を書きます。

LVMのセットアップ

これに関しては、インストール時点で有効にしておくほうがいいです。
じゃないと、LVM移行するときに、該当パーティションを削除する必要が出てきます。(新設だったらいいけど、LVMって拡張するための仕組みだからなぁ。。。)

インストール時点でLVMを有効にする や LVMをセットアップするを選んでLVM構成でセットアップしましょう。

PV、VGへの追加、LVM拡張

これから追加するUSBドライブ(HDDでもいいけど)をparted 使ってLVMに追加してもいいディスクとしてパーティションを作成します。

まず、ディスクを確認して
sudo parted -l /dev/mmcblk0
番号  開始    終了    サイズ  ファイルシステム  名前                  フラグ
 1    1049kB  538MB   537MB   fat32             EFI System Partition  boot, esp
 2    538MB   1050MB  512MB   ext2
 3    1050MB  31.3GB  30.2GB                                          lvm

この3番目のパーティションが30Gしかないのでこれに追加する手順を。

追加するディスクをpartedでlvmのパーティションとして作成

ディスクをLVMにしてしまう

sudo parted /dev/sda
rm xx
mklabel gpt
mkpart primary 0 100%
set 1 lvm on

VGを確認

sudo vgdisplay

VGは「ubuntu-vg」ってことがわかりました。

PV作成

pvcreate /dev/vdb1

VGへ追加

vgextend ubuntu-vg /dev/vdb1
pvdisplay

論理ボリュームroot拡張

lvextend -l +100%FREE /dev/ubuntu-vg/root

ファイルシステム拡張

resize2fs /dev/ubuntu-vg/root

パーティションサイズ確認

resize2fs /dev/ubuntu-vg/root

hibernate有効化

5/10 追記 Aspire one A01-132ではhybernateは実行できますが、また起動した時にデータを復元できていませんでした。。。
xubuntuで軽くしてあきらめるとします。

sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes

これでクライアントマシンとして割と使いやすい感じになったと思う。

このあと再起動したらもうハイバーネートが有効な状態です。

参考資料:

android studioもそこそこ動いているっぽいし、これでしばらくはいいかな。
VirtualBoxとか動かす感じではないし。


寝るか。。。

火曜日, 1月 24, 2017

macを開発環境として整えたい part II(Virtualboxをwebから触る)

表題に書いたことをやるよりこっちの方が良さそうだ。




つきましては、改め、上記の通り、vagrantで環境を整えて、docker + 作業用VMを構築していきたいと思います。(やりたいことはvagrantでできたはず。)

金曜日, 1月 06, 2017

macを開発環境として整えたい part I(OpenVPN)

OpenVPN環境を整えるときに、以下の3つの選択肢がありました。


  • sierra上にOpenVPN環境を構築する。
  • VM上に普通にOpenVPN環境を構築する。
  • docker上にOpenVPN環境を構築する。

ネットワーク周りのロスを少なくしたかったので、sierra上にOpenVPNを構築したかったのですが、残念ながらtuntapがmacos sierraをサポートしていない?みたいです。

なぜかインストールしたら画面が暗転してずっと元に戻らなかったのでやめました。

次に、VM上にOpenVPN環境を構築ですが、
これもこれで後生大事にOpenVPNのVMを作成してやるのもやだなーとかめんどくさがってました。(おそらくこれが一番いいと思う選択肢)

最後にdockerでcontainer化できたらほかのOSに移動したとしてもすぐに移動できて便利だと思って探しておりました。


最終的にとったのは、
  • docker上にOpenVPN環境を構築する。
の方法なんですが

以下のコンテイメージからこんな風に設定・スクリプトを書いて運用するようにしました。


こんな感じでdocker-composeとそれをたたくスクリプトを作成し、それで運用するように。
 これならあまり手間暇かけなくてもOpenVPNを始められますね。(VM上で直配置のほうが早そうだけど。)
ファイルの内訳は、
initialze.sh 初期設定用スクリプト
generate-client.sh クライアントファイル指定で、設定ファイルを吐き出したり、DBアップデートしたり
start-server.sh OpenVPNサーバーの停止・起動

これでお手軽OpenVPNですね。


おやすみなさい。

木曜日, 1月 05, 2017

macを開発環境として整えたい

もうMacでいいやってなったのだけど、以下のものが必要と考える。

  • VPN
  • サービス起動方法
  • virtualboxをwebから触る

OpenVPN

他のVPN方式でもいいのだけど、かって知ったる証明書付きで認証を行ってくれるOpenVPN。
なぜこれが必要なのかというと
開発環境の使い方として、
  • リモートからRDPしたい。
  • リモートからVirtualBoxに触りたい。
この時に、各々のサービスで認証をかけるの面倒ですし、何よりできたかな?できなかったかな?とかするのが大変。 なんで一括自分のネットワークに入ってできるようにOpenVPN

サービス起動方法

launchctlで自分のユーザでログインせずとも(SSH除く)サービスを起動する方法がほしい。
それができればマシン立ち上がったら
Virtualbox上に配置されたVMを起動して
dockerのこのコンテナを起動させて
みたいなことができて、普通のLinuxのSysV initやsystemdみたいなことがしたいのです。

きっと、launchctlでもできるんでしょうけどその記述方法がまだ分かっておりません。

Virtualboxをwebから触る

これは何を言ってるのかというと、
phpVirtualBoxをOSX上に配置してブラウザから触ればらくできるのかな?という思いからです。

まずはいったんこの環境を整えていきたいと思います。
面倒なので、vagrantでいいや!ってことになりました。(環境の構成についてもスクリプト化できるのでこっちのほうがいい)

木曜日, 12月 29, 2016

やっぱり、macos sierraで行こう

えっと、mac=>ubuntuにしてやろうといきまいていましたが、
クライアント開発環境としてはmacが最適解なんじゃないの?

また、apple純正じゃないとだめってなったらあれなんじゃないの?って本日出社する前に思い立ちまして、


納会終わって帰ってきたら、こんなことをしておりました。

別にubuntuにするのが難しいとかではないです。
先人の知恵を探してみると色々出てきます。

https://moneyforward.com/engineers_blog/2016/02/22/ubuntu/

少し風変りだけど難しくてできねーって問題ではないのです。

ってなわけで、開発環境はMacがつぶれるまでMacで行きたいなと。(つぶれたらデータ移設できないけども。)

まずは、環境にdocker用のVmとvagrantをのっけてVMとdockerを簡易に作れるようにしちゃいます。