2017年4月13日木曜日

ESXiにてプロセス確認

ESXiにてプロセスを確認するために、psコマンドを利用して確認をします。しかし、Optionがわからなくどうすればよく情報を取れるか気になったことがあります。
今日はPSコマンドで情報を取る方法を紹介します。

ps コマンドをを見ると
[root@localhost:~] ps --help
ps
    -C           Display only cartels
    -P           Display PCID
    -T           Display used time
    -c           Display verbose command line
    -g           Display session ID and process group
    -i           Display summary information
    -j           Display GID
    -n           Display nChildren (only with --tree)
    -N           Display nThreads  (only with --tree)
    -s           Display state
    -t           Display type
    -u           Display only userworlds
    -U [N]       Display [only] userspace ID
    -v           Display non truncated values
    -Z           Display the security domain
    -z           Display zombie cartels
    -J or --tree Display userworlds in a tree layout
[root@localhost:~]
になります。

そこを組み合わせして
ps -Tcjstvコマンドを実行すると色んな情報が見えます。
例えば sshdの実行プロセスのPIDを調査して見ます。
[root@localhost:~] ps -Tcjstv | grep sshd
35745  35745  sshd                           35745  User,Native    WAIT    UPOL    0,1       0.117159  sshd -i
36172  36172  grep                           36172  User,Native    WAIT    UPIPER  0,1       0.0       grep sshd
[root@localhost:~]

ここでProcessをkillするとプロセスがなくなります。
kill -9 35745して見ては。。

これをいつ使うかはghettoVCBを利用するときにたまに、ゾンビになりますので
そのときに使うと便利です。

以上です。

2017年4月12日水曜日

ESXi의 HOST를 강제 종료하기

일반적으로는 EXSi의 호스트를 강제종료하기위해서는 전원 power off를 선택하여 종료하나, 가끔은 이것이 말을 안들을때가 있습니다. Power off를 해도 응답이 없는 경우가 있어서 이걸 어떻게 하면 한번에 종료 할 수 있는지를 조사한 결과를 소개해 보려고 합니다.

ESXi에 ssh로 접속합니다.
[root@localhost:~] esxcli vm process list
test1
   World ID: 35331
   Process ID: 0
   VMX Cartel ID: 35330
   UUID: 56 4d 11 5a 33 05 74 09-42 1e e2 b4 81 2a b6 05
   Display Name: test1
   Config File: /vmfs/volumes/58c6a2fd-43824507-ea95-000c2968d936/test1/test1.vmx

test2
   World ID: 36062
   Process ID: 0
   VMX Cartel ID: 36061
   UUID: 56 4d 28 49 b1 5d 09 1f-ba 63 3e 7c 73 87 1f c6
   Display Name: test2
   Config File: /vmfs/volumes/58c6a2fd-43824507-ea95-000c2968d936/test2/test2.vmx
[root@localhost:~]

실행중인 가상호스트의 리스트를 확인합니다.
강제종료할 호스트의 World ID을 이용하여 정지시킵니다.
[root@localhost:~] esxcli vm process kill --type=force --world-id=35331
[root@localhost:~] esxcli vm process list
test2
   World ID: 36062
   Process ID: 0
   VMX Cartel ID: 36061
   UUID: 56 4d 28 49 b1 5d 09 1f-ba 63 3e 7c 73 87 1f c6
   Display Name: test2
   Config File: /vmfs/volumes/58c6a2fd-43824507-ea95-000c2968d936/test2/test2.vmx
[root@localhost:~]
명령어로는 esxcli vm process kill --type=force --world-id=35331를 실행합니다.
type에는 soft,hard,force가 있습니만, 저는 force를 사용하였습니다.
world-id에는 list에서 보이는 숫자를 입력합니다.

이렇게 입력하고 실행을 하면 호스트가 정지되는 것이 보일것입니다.
이상입니다.

ESXiのHOST強制停止

一般的にESXiのHOST強制停止するなら電源パワーオフを考えていますが重い処理、または外部ファイルをLinkなどがある場合は電源パワーオフがちょっと時間がかかります。または電源パワーオフしても電源パワーオフができない場合があります。
なぜか、時間がかかるかわからないですが一気に停止する方法があのでそれを紹介します。

ESXiにsshで接続します。
[root@localhost:~] esxcli vm process list
test1
   World ID: 35331
   Process ID: 0
   VMX Cartel ID: 35330
   UUID: 56 4d 11 5a 33 05 74 09-42 1e e2 b4 81 2a b6 05
   Display Name: test1
   Config File: /vmfs/volumes/58c6a2fd-43824507-ea95-000c2968d936/test1/test1.vmx

test2
   World ID: 36062
   Process ID: 0
   VMX Cartel ID: 36061
   UUID: 56 4d 28 49 b1 5d 09 1f-ba 63 3e 7c 73 87 1f c6
   Display Name: test2
   Config File: /vmfs/volumes/58c6a2fd-43824507-ea95-000c2968d936/test2/test2.vmx
[root@localhost:~]

動作中の仮想ホストのリストが表示されます。
強制停止したホストのWorld IDを利用して停止します。
[root@localhost:~] esxcli vm process kill --type=force --world-id=35331
[root@localhost:~] esxcli vm process list
test2
   World ID: 36062
   Process ID: 0
   VMX Cartel ID: 36061
   UUID: 56 4d 28 49 b1 5d 09 1f-ba 63 3e 7c 73 87 1f c6
   Display Name: test2
   Config File: /vmfs/volumes/58c6a2fd-43824507-ea95-000c2968d936/test2/test2.vmx
[root@localhost:~]
コマンドはesxcli vm process kill --type=force --world-id=35331を発行しました。
typeにはsoft,hard,forceありますが僕の場合はforce を利用しています。
world-idにはlistで見えた数字を入れます。
そうすると一気に停止することがわかると思います。

以上です。


2017年4月11日火曜日

MySQL에 DBLINK만들기

Server version: 10.1.21-MariaDB MariaDB Server을 기준으로 합니다.

DBLink를 만들 database를 작성합니다.
MariaDB [mysql]> create database parkdb;

parkdb에 Zabbix에 있는 table을 dblink하겠습니다.
engines을 먼저 확인합니다.
MariaDB [mysql]> show engines;
+--------------------+---------+-
| Engine             | Support |
+--------------------+---------+-
| MRG_MyISAM         | YES     |
| CSV                | YES     |
| Aria               | YES     |
| MyISAM             | YES     |
| MEMORY             | YES     |
| InnoDB             | DEFAULT |
| SEQUENCE           | YES     |
| PERFORMANCE_SCHEMA | YES     |
+--------------------+---------+-
8 rows in set (0.00 sec)

MariaDB [mysql]>

FEDERATED은 Default설정이 되어 있지 않으므로 인스톨 합니다.

①FEDERATED 인스톨

MariaDB [mysql]> install plugin federated soname 'ha_federated.so';
Query OK, 0 rows affected (0.03 sec)
MariaDB [mysql]> show engines;
+--------------------+---------+
| Engine             | Support |
+--------------------+---------+
| MRG_MyISAM         | YES     |
| CSV                | YES     |
| Aria               | YES     |
| MyISAM             | YES     |
| MEMORY             | YES     |
| InnoDB             | DEFAULT |
| SEQUENCE           | YES     |
| FEDERATED          | YES     |
| PERFORMANCE_SCHEMA | YES     |
+--------------------+---------+
9 rows in set (0.00 sec)

②DBLink작성

MariaDB [mysql]> CREATE SERVER dblink
    -> FOREIGN DATA WRAPPER mysql
    -> OPTIONS (USER 'zabbix', PASSWORD 'zabbix' , HOST '127.0.0.1', PORT 3306, DATABASE 'zabbix');
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> 

Database zabbix에 접속할수 있는 유져를 등록합니다.

③dblink대상이 될 TABLE을 작성합니다.

[root@localhost ~]# mysql -uzabbix zabbix -pzabbix
MariaDB [zabbix]> CREATE TABLE test_table (
    ->     id     INT(20) NOT NULL AUTO_INCREMENT,
    ->     name   VARCHAR(32) NOT NULL DEFAULT '',
    ->     other  INT(20) NOT NULL DEFAULT '0',
    ->     PRIMARY KEY  (id),
    ->     INDEX name (name),
    ->     INDEX other_key (other)
    -> );
Query OK, 0 rows affected (0.04 sec)

④DBLink Table을 작성합니다.

[root@localhost ~]# mysql -uzabbix parkdb -pzabbix
MariaDB [parkdb]> CREATE TABLE test_table (
    ->     id     INT(20) NOT NULL AUTO_INCREMENT,
    ->     name   VARCHAR(32) NOT NULL DEFAULT '',
    ->     other  INT(20) NOT NULL DEFAULT '0',
    ->     PRIMARY KEY  (id),
    ->     INDEX name (name),
    ->     INDEX other_key (other)
    -> )
    -> ENGINE=FEDERATED
    -> DEFAULT CHARSET=utf8
    -> CONNECTION='dblink/test_table';
Query OK, 0 rows affected (0.00 sec)

MariaDB [parkdb]> 
    -> CONNECTION='dblink/test_table';부분을 주의 해 주시길 바랍니다.
  ②번에 DBLINK작성에 등록한 이름으로 table을 생성합니다.

⑤확인

Zabbix DATABASE에 Insert합니다.
MariaDB [zabbix]> insert into test_table values (1,'park',0);
Query OK, 1 row affected (0.01 sec)

MariaDB [zabbix]> 

parkd DATABASE에서 select합니다.
MariaDB [parkdb]> select * from test_table;
+----+------+-------+
| id | name | other |
+----+------+-------+
|  1 | park |     0 |
+----+------+-------+
1 row in set (0.01 sec)
parkd DATABASE에 Insert힙니다.
MariaDB [parkdb]> insert into test_table values (2,'uri',0);
Query OK, 1 row affected (0.00 sec)

MariaDB [parkdb]> 

Zabbix DATABASE에서 Select합니다.
MariaDB [zabbix]> select * from test_table;
+----+------+-------+
| id | name | other |
+----+------+-------+
|  1 | park |     0 |
|  2 | uri  |     0 |
+----+------+-------+
2 rows in set (0.00 sec)

MariaDB [zabbix]> 


이상입니다.

MySQLのDBLINK

Server version: 10.1.21-MariaDB MariaDB Serverを基準にします。

DBLinkを入れるdatabaseを作成します。
MariaDB [mysql]> create database parkdb;

parkdbにZabbixにあるtableをDBLinkします。
enginesを確認します。
MariaDB [mysql]> show engines;
+--------------------+---------+-
| Engine             | Support |
+--------------------+---------+-
| MRG_MyISAM         | YES     |
| CSV                | YES     |
| Aria               | YES     |
| MyISAM             | YES     |
| MEMORY             | YES     |
| InnoDB             | DEFAULT |
| SEQUENCE           | YES     |
| PERFORMANCE_SCHEMA | YES     |
+--------------------+---------+-
8 rows in set (0.00 sec)

MariaDB [mysql]>

FEDERATEDは Defaultではないです。
ですのでインストールが必要です。

①FEDERATED インストール

MariaDB [mysql]> install plugin federated soname 'ha_federated.so';
Query OK, 0 rows affected (0.03 sec)
MariaDB [mysql]> show engines;
+--------------------+---------+
| Engine             | Support |
+--------------------+---------+
| MRG_MyISAM         | YES     |
| CSV                | YES     |
| Aria               | YES     |
| MyISAM             | YES     |
| MEMORY             | YES     |
| InnoDB             | DEFAULT |
| SEQUENCE           | YES     |
| FEDERATED          | YES     |
| PERFORMANCE_SCHEMA | YES     |
+--------------------+---------+
9 rows in set (0.00 sec)

②DBLink作成

MariaDB [mysql]> CREATE SERVER dblink
    -> FOREIGN DATA WRAPPER mysql
    -> OPTIONS (USER 'zabbix', PASSWORD 'zabbix' , HOST '127.0.0.1', PORT 3306, DATABASE 'zabbix');
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> 

Database zabbixへ接続ができるユーザーを書きます。

③dblink対象のテーブル作成

[root@localhost ~]# mysql -uzabbix zabbix -pzabbix
MariaDB [zabbix]> CREATE TABLE test_table (
    ->     id     INT(20) NOT NULL AUTO_INCREMENT,
    ->     name   VARCHAR(32) NOT NULL DEFAULT '',
    ->     other  INT(20) NOT NULL DEFAULT '0',
    ->     PRIMARY KEY  (id),
    ->     INDEX name (name),
    ->     INDEX other_key (other)
    -> );
Query OK, 0 rows affected (0.04 sec)

④DBLinkテーブル作成

[root@localhost ~]# mysql -uzabbix parkdb -pzabbix
MariaDB [parkdb]> CREATE TABLE test_table (
    ->     id     INT(20) NOT NULL AUTO_INCREMENT,
    ->     name   VARCHAR(32) NOT NULL DEFAULT '',
    ->     other  INT(20) NOT NULL DEFAULT '0',
    ->     PRIMARY KEY  (id),
    ->     INDEX name (name),
    ->     INDEX other_key (other)
    -> )
    -> ENGINE=FEDERATED
    -> DEFAULT CHARSET=utf8
    -> CONNECTION='dblink/test_table';
Query OK, 0 rows affected (0.00 sec)

MariaDB [parkdb]> 

⑤確認

Zabbix DATABASEへInsertする。
MariaDB [zabbix]> insert into test_table values (1,'park',0);
Query OK, 1 row affected (0.01 sec)

MariaDB [zabbix]> 

parkd DATABASEからselectする。
MariaDB [parkdb]> select * from test_table;
+----+------+-------+
| id | name | other |
+----+------+-------+
|  1 | park |     0 |
+----+------+-------+
1 row in set (0.01 sec)
parkd DATABASEへInsertする。
MariaDB [parkdb]> insert into test_table values (2,'uri',0);
Query OK, 1 row affected (0.00 sec)

MariaDB [parkdb]> 

Zabbix DATABASEからSelectする。
MariaDB [zabbix]> select * from test_table;
+----+------+-------+
| id | name | other |
+----+------+-------+
|  1 | park |     0 |
|  2 | uri  |     0 |
+----+------+-------+
2 rows in set (0.00 sec)

MariaDB [zabbix]> 


以上です。

2017年4月9日日曜日

Linux Diskが急になくなると error

追加したDiskを削除してからOSをrebootすると
Welcome to emergency mode! After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" to try again
to boot into default mode.
Give root password for maintenance
(or type Control-D to continue):

このエラーが起きます。
ここでPointは
journalctl -xbとsystemctl rebootとsystemctl defaultになります。
CentOS7のinitに該当するsystemctlからおきることです。
解消方法は

rootでログインします。
その後
fstabに追加した部分を削除します。
[root@test1 ~]# vi /etc/fstab
##/dev/mapper/VgPark-LvPark /mnt                   xfs     defaults        0 0

rebootしてみてください。

以上です。

2017年4月8日土曜日

Linux에 Disk추가하는 방법

이글은 CentOS7을 기준으로 하고 있습니다.
ESXi에 있는 CentOS에 Disk 볼륨을 넓히는 것과 추가 하는 것은 잘 모르는 경우가 있습니다. Disk의 볼륨을 넓히는 것은 resize하는 것이고, 추가하는 것은 새롭게 볼륨을 만드는 것입니다. 이것에 대해서 자세하게 적어보려고 합니다.

1.vSphere Client에서 Disk추가

밑에와 같이 나옴니다.
여기서도 죄송하게 일본어로 나오는 점 양해해 주시길 바랍니다.
클릭의 위치는 같으므로 참고해 주시길 바랍니다.



제일위에 있는 새로운 디스크(Create a new virtual disk)를 클릭하고 다음을 클릭합니다.
만약에 ESXi에 새롭게 만든 디스크가 있을 경우는 두번째에 있는 
기존디스크를 선택하여 새롭게 만든 디스크를 선택해 주세요.
기존 디스크에 대해서는 Oracle RAC를 설명할때 설명드리도록 하겠습니다.


새로운 디스크이므로 두번째있는 Eager Zeroed를 선택합니다.
다음을 클릭을 합니다.


仮想デバイス ノード(SCSI) 있는 곳에 SCSI(1:0)를 선택합니다.
이번에 resize가 아니고 add이기 때문입니다.

이렇게 하면 디스크가 추가된것을 알수 있습니다.
디스크 사이즈에 따라서 시간이 오래 걸립니다. vSphere밑에
타스크 status가 100%될때 가지 기다려 주시면 됩니다.

2.OS에서 Disk추가 하는 방법



df 명령어로 확인하면 사이즈를 확인 할수 있습니다.
fdisk -l 명령어 로 현제의 상태를 확인할 수 있습니다.

여기서 부터 추가를 해보겠습니다.

색깔이 틀린부분이 새롭게 추가한 부분입니다.
이것을 파티션에 추가 하겠습니다.

①파티션을 추가

[root@test1 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x999fb263.

コマンド (m でヘルプ): n  
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
パーティション番号 (1-4, default 1): 1
最初 sector (2048-20971519, 初期値 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, 初期値 20971519): 20971519
Partition 1 of type Linux and of size 10 GiB is set

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
[root@test1 ~]# 

fdisk -l로 확인 화면입니다.
색칠한 부분이 위에 나와있지 않은 새롭게 추가된 파티션 화면입니다.

 ②물리적 볼륨 작성

[root@test1 ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@test1 ~]# 

③볼륨 그룹을 작성

[root@test1 ~]# vgcreate VgPark /dev/sdb1
  Volume group "VgPark" successfully created
[root@test1 ~]# 

④Logical Volume 작성

[root@test1 ~]# lvcreate -n LvPark -l 100%FREE VgPark
  Logical volume "LvPark" created.
[root@test1 ~]# 
확인
[root@test1 ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/VgPark/LvPark
  LV Name                LvPark
  VG Name                VgPark
  LV UUID                L4Jmqt-JrLW-ae1Y-1UpD-6EHV-pGjm-zk0czh
  LV Write Access        read/write
  LV Creation host, time test1, 2017-04-06 21:41:03 +0900
  LV Status              available
  # open                 0
  LV Size                10.00 GiB
  Current LE             2559
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
   
  --- Logical volume ---
  LV Path                /dev/cl/swap
  LV Name                swap
  VG Name                cl
  LV UUID                v2D5GC-oEVG-Hp4n-VrQN-CWKg-Jexv-he33ep
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-03-13 22:58:45 +0900
  LV Status              available
  # open                 2
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/cl/root
  LV Name                root
  VG Name                cl
  LV UUID                2MLMGn-myim-eAVy-mgMf-s9iG-21Mt-RvaG25
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-03-13 22:58:46 +0900
  LV Status              available
  # open                 1
  LV Size                8.00 GiB
  Current LE             2047
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
[root@test1 ~]# 

 ⑤Disk Format

[root@test1 ~]# mkfs.xfs /dev/VgPark/LvPark
meta-data=/dev/VgPark/LvPark     isize=512    agcount=4, agsize=655104 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2620416, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@test1 ~]#

⑥Disk Mount

[root@test1 ~]# mount /dev/VgPark/LvPark /mnt
확인

이것으로 Disk추가는 완료되었습니다.
그러나, 이상태라면 reboot를 할경우 mount가 안되어 사용을 못합니다.
reboot를 해도 사용할수있게 fstab파일을 수정하겠습니다.

⑦fstab파일 수정

마지막 부분에 추가를 합니다.
[root@test1 ~]# vi /etc/fstab 
/dev/mapper/VgPark-LvPark /mnt                   xfs     defaults        0 0

새롭게 추가한 디스크를 df 명령어로 확인된 /dev/mapper/VgPark-LvPark 를 추가합니다.

확인방법

Disk추가를 했습니다.
이상입니다.