뭘 이런걸..

Posted
Filed under Tech/Tip & Trick
MegaRAID 의 VD 의 device name 을 구하는 방법

일단, controller 별 device 정보는 다음에서 구할 수 있다

/dev/disk/by-path/*
/sys/block/*/device


이 두 경로 리스트의 softlink target 에 device name 이 존재한다.

[root@host ~]# ls -l /dev/disk/by-path/
합계 0
lrwxrwxrwx 1 root root 9 9월 5 01:30 pci-0000:00:11.5-ata-3.0 -> ../../sdg
lrwxrwxrwx 1 root root 10 9월 5 01:30 pci-0000:00:11.5-ata-3.0-part1 -> ../../sdg1
lrwxrwxrwx 1 root root 10 9월 5 01:30 pci-0000:00:11.5-ata-3.0-part2 -> ../../sdg2
lrwxrwxrwx 1 root root 10 9월 5 01:30 pci-0000:00:11.5-ata-3.0-part3 -> ../../sdg3
lrwxrwxrwx 1 root root 9 9월 5 01:30 pci-0000:17:00.0-scsi-0:2:0:0 -> ../../sda
lrwxrwxrwx 1 root root 9 9월 5 01:30 pci-0000:17:00.0-scsi-0:2:1:0 -> ../../sdb
lrwxrwxrwx 1 root root 9 9월 5 01:30 pci-0000:b3:00.0-scsi-0:2:0:0 -> ../../sdc
lrwxrwxrwx 1 root root 9 9월 5 01:30 pci-0000:b3:00.0-scsi-0:2:1:0 -> ../../sdd
lrwxrwxrwx 1 root root 9 9월 5 01:30 pci-0000:b3:00.0-scsi-0:2:2:0 -> ../../sde
lrwxrwxrwx 1 root root 9 9월 5 01:30 pci-0000:b3:00.0-scsi-0:2:3:0 -> ../../sdf


by-path 의 장점은 위의 정보와 같아 cotroller 에 연결이 안되어 있는 disk 가 존재하는 경우을 처리할 수 있다는 장점이 있으나, CentOS 5 이전의 경우에는 by-path를 지원하지 않는 단점이 있다. CentOS 5 에서도 커널 버전에 따라 지원되고 안되고의 차이가 발생할 있다.

/sys 는 아래와 같다.

[root@a1page074.ndrive z]# ls -l /sys/block/sd*/device
lrwxrwxrwx 1 root root 0 8월 30 12:06 /sys/block/sda/device -> ../../../0:2:0:0
lrwxrwxrwx 1 root root 0 8월 30 12:06 /sys/block/sdb/device -> ../../../0:2:1:0
lrwxrwxrwx 1 root root 0 8월 30 12:06 /sys/block/sdc/device -> ../../../12:2:0:0
lrwxrwxrwx 1 root root 0 8월 30 12:06 /sys/block/sdd/device -> ../../../12:2:1:0
lrwxrwxrwx 1 root root 0 8월 30 12:06 /sys/block/sde/device -> ../../../12:2:2:0
lrwxrwxrwx 1 root root 0 8월 30 12:06 /sys/block/sdf/device -> ../../../12:2:3:0
lrwxrwxrwx 1 root root 0 8월 30 12:06 /sys/block/sdg/device -> ../../../3:0:0:0


/sys 의 경우 /sys 를 지원하는 커널에서는 다 사용을 할 수 있지만, 위와 같이 controller 에 연결이 되어 있지 않은 device 를 솎아 내기가 좀 애매하다.

여기서는 경우의 수를 될 수 있으면 많이 처리하기 위하여 /dev/disk/by-path 를 이용하여 구하는 코드를 만들어 볼 것이다.

일단, MegaRAID 를 사용하는 device 만 솎아 내기 위하여 PCI table 을 확인한다.

[root@host ~]# lspci | grep -E "LSI|Dell|IBM|MegaRAID"
17:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS-3 3108 [Invader] (rev 02)
b3:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS-3 3108 [Invader] (rev 02)


여기서 주의할 것이 sort 를 해서는 안된다. 여기에 나오는 순서가 MegaCLI 에서 나오는 controller 의 순서와 동일하다. 이 정보의 첫번째 필드만 있으면 된다.

그럼 by-path 에서 controller 정보와 VD 정보는 어떻게 매핑 하면 되는지 보겠다.

pci-0000:17:00.0-scsi-0:2:0:0
pci-0000:{PCI_TABLE_NUMBER}-scsi-0:2:{VD_NUMBER}:0


위와 같은 규칙을 이용하여 찾도록 한다. 그럼 완성된 코드는 다음과 같다.

idx=0
for rc in $(lspci | grep -E "LSI|Dell|IBM|MegaRAID" | sort | awk '{print $1}')
do
bypath="$(
ls -l /dev/disk/by-path/pci-0000:${rc}-* 2> /dev/null | awk -v ctrlidx=${idx} '
{
n = split ($(NF-2), A, ":");
vdnum = A[n-1]
dev = gensub (/.*\//, "", "g", $NF);

print ctrlidx ":" vdnum ":" dev

#print $(NF-2) " " $NF
}
'
)"
echo "$bypath"
let "idx++"
done


위의 코드의 결과는 다음과 같다.

controller_number:VD_number:device_name
0:0:sda
0:1:sdb
1:0:sdc
1:1:sdd
1:2:sde
1:3:sdf
2019/09/05 13:19 2019/09/05 13:19
Posted
Filed under Tech/Tip & Trick
MariaDB 10.4 부터 mysql database 의 user table 에 변경이 발생했습니다.

mysql> UPDATE USER SET Password = password('PASS_STRING');
mysql> flush privileges;

위와 같이 기존의 방식으로 변경을 하면 다음과 같은 에러가 발생 합니다.

ERROR 1348 (HY000): Column ‘Password’ is not updatable.

이 이유는, 10.4 부터는 user table 이 없어지고 global_priv table 이 그 역할을 대신 하기 때문입니다. show tables 시에 보여지는 user table은 global_priv 등의 table를 이용하여 view 로서 대신 하게 되었기 때문에 user table 을 update 하는 것이 불가능 합니다.
MariaDB [mysql]> SHOW FULL TABLES IN mysql WHERE TABLE_TYPE LIKE 'VIEW';
+-----------------+------------+
| Tables_in_mysql | Table_type |
+-----------------+------------+
| user | VIEW |
+-----------------+------------+
1 row in set (0.007 sec)

https://mariadb.com/kb/en/library/authentication-from-mariadb-104/

위의 문서를 읽어 보시면 몇가지 특징이 있는데, mysql 10.4 부터는 더이상 mysql 의 root 계정에 대한 암호를 기본적으로는 물어보지 않습니다. 이 이유는 오직 root account 로 mysql client 를 실행 했을 경우에만 암호가 없이 동작을 하며, 기타 다른 일반 account 로는 -u root 를 이용하여 접속이 불가능 함을 의미합니다. 즉, 일반 유저로 mysql root 연결이 필요 없다면, 더이상 mysql root 암호를 지정할 필요가 없다는 얘기입니다.

역설적으로 일반 account 에서 mysql root 로 연결을 할 필요가 있다면 mysql root 암호를 변경해 주어야 한다는 얘기도 됩니다.

여기서는 일반 account 에서 mysql root 로 연결을 하고 싶을 때 root account 의 암호를 변경하는 방법입니다.

일단은
SELECT password('PASSWORD_STRING');
query 를 이용하면 암호화된 문자열을 얻을 수 있습니다. 이 정보를 가지고 global_priv table의 Priv field 의 값을 수정해 주면 됩니다. (https://www.reddit.com/r/sysadmin/comments/avx1u6/how_to_change_the_root_password_with_mariadb_104/ 참조)

하지만 이렇게 하면 굉장히 번거롭기 때문에 다음과 같이 query 하나로도 변경이 가능 합니다.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD_STRING';




단, mariadb 10.3 이하 버전에서 업그레이드를 하여 mysql_upgrade 를 실행한 경우에는, 위의 조건이 성립하지 않습니다. mysql_upgrade 를 이용하여 mysql table을 10.4 용으로 업그레이드 한 경우에는 기본의 mysql database 의  table 들이 유지가 되게 됩니다. 즉, 이 경우에는 global_priv database 가 생성이 되지 않고 user table 이 view가 아니라 여전히 table 이 되게 됩니다.
2019/08/12 16:37 2019/08/12 16:37
Posted
Filed under Tech/Tip & Trick
10년도 더 된 LinkSys srw2024 switch 의 CLI mode 설정과 LLDP 를 지원 하는 방법에 대하여 기록 합니다. (까먹을 까봐 기록하는 겁니다. ^^)

재미 있는 건, 이 switch가 L3 도 지원을 한다는 것이었네요. 이제껏 모르고 있었습니다. ^^;

1. CLI mode 사용하기


srw2024 는 WebUI를 제공하기는 하지만, IE 전용이고, 굳이 말하자만 IE 7 전용이라고 봐야 합니다. 즉, IE 7 이 후 버전에서는 제대로 randering 을 하지 못한다는 의미입니다. WebUI를 사용하기 위해서는 개발자 도구를 열어서 문서모드와 사용자 에이전트 문자열을 조작한 다음 접속을 해야 한다는 의미 입니다.



상당히 불편 합니다. 그래서 CLI 모드를 사용하기 위해서는 ssh 연결을 할 수 있습니다. user 명은 다시 입력을 받기 때문에 신경쓰지 않아도 됩니다. ssh 로 접속을 하면 다음과 같이 인증 화면이 뜹니다. User Name 과 Password 입력창 간의 전환은 TAB 키로 이동할 수 있습니다.



로그인을 하면 다음과 같이 Memu가 나옵니다.



WebUI 와 거의 비슷하지만, 4. System Mode (Layer 2 / Layer 3) 메뉴가 더 추가 되어 있고, 여기서 L3 switch 로 전환이 가능 합니다. 이 부분은 여기서 논하지는 않을 예정입니다. 관심있는 분들은 살펴 보시기를.. (그런데 이 switch를 아직 쓰는 사람들이 있을지..)

이렇게 ssh console 로 접속을 해서 cli mode 라고 하기는 좀 그렇습니다. 이 메뉴만으로 할 수 없는 일들이 많이 있습니다. LinkSys switch는 Cisco switch 와 같으 CLI 환경이 숨어 있습니다. 이 화면에서 Ctrl-Z 를 누르면 숨어 있는 CLI mode 로 들어갈 수 있습니다.



위의 화면은 CTRL-Z를 입력 했을 때 prompt가 뜬 상태 입니다. 처음 prompt 가 뜰 때는 마지막 memory log 를 출력하기 때문에 위의 화면 처럼 나오는데, 실제로는 제일 처음의 > 문자가 prompt 이고, 그 뒤는 log 가 출력이 된 것입니다. 이 화면에서 도움말을 보고 싶으면 ? 를 입력 하면 됩니다.



무언가 명령이 나왔습니다. :)
우리의 목적은 Cisco switch 의 cli 설정 환경 입니다. 그러므로, 여기서는 lcli 명령을 실행 하도록 합니다.



cli 모드로 진입을 하려면 다시 로그인을 해야 합니다. 위와 같이 인증을 하면 cli 모드로 진입이 됩니다. cli 모드에서 help 명령은 ? 문자를 입력하면 됩니다. (enter key를 입력할 필요가 없습니다.)





lcli 로 집입한 상태는 cisco 처럼 config 상태가 아닙니다. 설정을 변경 하기 위해서는 cisco와 같이 configure 모드로 진입을 해야 합니다.



configure 모드에서 ? 를 입력하면 아래와 같이 사용할 수 있는 명령어 목록들이 출력이 됩니다.




2. LLDP 설정 하기


이 문서는 단순히 기록을 위한 것이기 때문에 LLDP가 무엇인지에 대해서는 논하지 않습니다.

srw2024 는 기본적으로 LLDP 설정이 disable 이며, 또한 enable 역시 설정 화면에서 할 수가 없고 snmp를 이용해야 합니다. 그러므로 snmp 설정이 필요 합니다.

WebUI 를 이용하든, CLI 모드를 이용하든 snmp rw가 가능한 community를 생성해 줍니다.

gwi.kldp.org# conf
gwi.kldp.org(config)# snmp-server community lldpset rw


다음 swtich 에 연결이 되어 있는 net-snmp-utils 패키지가 설치된 시스템에서 다음 명령으로 확인을 합니다.

[root@kill ~]$ snmpwalk -v2c -c lldpset gwi.kldp.org 1.3.6.1.4.1.3955.89.110.1.1.1.0
SNMPv2-SMI::enterprises.3955.89.110.1.1.1.0 = INTEGER: 2


위와 같이 OID의 값이 2일 경우에는 LLDP 설정이 disable 인 상태 입니다. LLDP 설정을 enable 하기 위하여 다음과 같이 명령을 실행 합니다.

[root@kill ~]$ snmpset -v2c -c kldp gwi.kldp.org 1.3.6.1.4.1.3955.89.110.1.1.1.0 i 1
SNMPv2-SMI::enterprises.3955.89.110.1.1.1.0 = INTEGER: 1


잘 설정이 되었는지 확인을 합니다.

[root@kill ~]$ snmpget -v2c -c kldp gwi.kldp.org 1.3.6.1.4.1.3955.89.110.1.1.1.0
SNMPv2-SMI::enterprises.3955.89.110.1.1.1.0 = INTEGER: 1


LLDP 가 enable 되었다면 잘 되었는지 확인을 합니다. switch cli mode로 진입 하여 아래와 같이 확인 합니다.

gwi.kldp.org# show lldp nei
Port Device ID Port ID System Name Capabilities
------- ----------------- ----------------- ------------------- ------------
3 00:31:b5:c7:64:32 00:31:b5:c7:64:32 netgear.kldp.org H
6 00:36:29:43:61:dc 00:36:29:43:61:dc cicso.kldp.org H
8 00:3e:24:c1:19:64 00:3e:24:c1:19:64 O
gwi.kldp.org#


확인이 잘 되면, rw 모드로 생성했던 commnunity를 ro로 변경해 줍니다.

console# conf
console(config)# snmp-server enable
console(config)# snmp-server community lldpset ro


삭제를 하고 싶다면, web UI를 이용하여 삭제할 수 있습니다. (이래저래 귀찮습니다. 한 곳에서 깔끔하게 되지를 않네요.


2018/08/11 15:45 2018/08/11 15:45
Posted
Filed under Tech/Tip & Trick
Windows 10 사용중에 마우스만 움직이고 다른 기능은 다 멈추는 문제가 종종 발생했는데 찾아보니 "DynamicTick" 기술의 충돌 때문이라고 하네요. 자세한 건 하단의 "출처" 참고 하시고, 관리자 권한으로 cmd 실행해서

bcdedit /set disabledynamictick yes

실행한 후, rebooting 하시면 된다고 합니다.

출처: http://foxcg.com/246
2017/07/19 14:36 2017/07/19 14:36
Posted
Filed under Tech/Tip & Trick
방금전, openvpn-gui 의 한글 번역이 review 를 통과 했습니다. 대충 번역만 해서 pull request를 날렸더니 까다롭게 하나하나 짚어 내는 군요.

그래서 좀 신경써서 테스트도 해 보고 해서 다시 제출을 하니 방금 approve가 되었습니다.

아마 다음 버전 릴리즈시에는 openvpn-gui 에서 한글을 보실 수 있을 겁니다. (단, 번역 품질은 ㅎㅎ)

https://github.com/OpenVPN/openvpn-gui/pull/155

사용자 삽입 이미지
사용자 삽입 이미지
2017/04/26 00:30 2017/04/26 00:30
Posted
Filed under Tech/Tip & Trick
금일 Xen Server 7.1로 업그레이드를 한 이 후에, oops.org VM 이 아래의 메시지를 뿌리면서 load가 되지 않는 문제가 있었습니다.

Failed Starting VM 'oops.org'

This operation cannot be performed because the specified virtual disk could not be found

정말 당황 스러웠습니다. 검색을 해 봐도 뾰족한 수는 없고, VM host에 로그인 해서 LVM partition을 봐도 제대로 인식은 되어 있었고..

oops.org는 기존에 Xen Server 7.0으로 운영을 하고 있었으며, Disk는 LVM으로 다음과 같이 사용을 하고 있었습니다.

Pysical disk:
  • /dev/sda   SSD 150G
  • /dev/sdb   SATA 500G

Logical disk:
  • oops.org
  • an2.pkg.oops.org
  • an2.x86.pkg.oops.org
  • test.oops.org

그런데, 다른 VM은 모두 load가 되는데, 하필 oops.org VM만 load가 되지 않는 것이었습니다. 특정 가상 disk를 인식을 할 수 없다는데, VM host에서 아무리 확인을 해 봐도 oops.org partition은 살아 있고, 실제로 다른 VM에 attach를 해서 확인을 해 봐도 잘 살아 있더군요.

2017년 1월 경에 장비 fault 나면서 복구 한지 이제 2달 정도 지났고, 정신 없이 지내다 보니 백업도 2017년 1월달 까지 밖에 없고, 좀 난감하더군요. 그래서 어쩔 수 없이 있는 파티션 날릴 각오를 하고 최후의 꽁수를 진행해 보았습니다.

  1. Detach oops.org virtual disk
  2. oops.org VM 제거
  3. oops.org VM 재생성
  4. Reattach oops.org virtual disk
  5. VM 재생성시에 생성된 가상 disk 제거
  6. boot 옵션을 Hard Disk로만 되도록 설정 변경
  7. rebooting

이 작업 이 후에, 다시 인식을 하여 oops.org VM load를 성공했습니다.

살짝 암담했었는데, 겨우 복구하고 한숨 한번 쉬어 주고, 이 글을 작성 합니다. --;
2017/03/29 04:24 2017/03/29 04:24
김정균

하.. 1년반이 지나서야 이 문제의 원인을 알았습니다.

아마 정말 virtaul disk 가 깨진 것이 아니라면 대부분 virtaal cdrom mount 를 한 상태에서 rebooting 을 했고, 부팅 시에 virtual cdrom을 eject 시킬 경우 이 문제가 발생을 합니다.

이 경우, XenCenter Console tab에서 DVD Drive를 xs-tools.iso (Xen 6) 또는 guest-tool.iso (Xen7) 로 선택한 후에 부팅을 하시면 됩니다. 그리고 OS가 부팅이 되어 있는 상태에서 eject 를 해 줘야 다음에 booting 이 정상적으로 진행이 됩니다.

Posted
Filed under Tech/Tip & Trick
Note: OS X 10.11 El Capitan에서의 방법이 업데이트 되었습니다.

아.. Mac Lion에서 동작하는 Apple Script를 찾느라 힘이 들어 공유 합니다. (일단 한글 자료가 없어서..)

일단, finder > 응용 프로그램 > Apple Script 편집기를 실행 해서 다음의 코드를 넣습니다.

주의할 것은, Apple Script를 사용하기 위해서는 "시스템 설정" > "손쉬운 사용" 의 하단에 "보조 장비에 대한 접근 활성화"가 체크되어 있어야 합니다.

Safari Private Browsing 한국어 모드



OS X 10.11 El Capitan 에서는 다음과 같이.. (https://discussions.apple.com/message/29223652#29223652 참조)

Safari Private Browsing 한국어 모드



영문판은 다음과 같이 하셔야 합니다.

Safari Private Browsing 영문 모드

2016/01/20 18:26 2016/01/20 18:26
Posted
Filed under Tech/Tip & Trick
Xen Server 6.0.2 이전 버전에서 6.2로 업그레이드를 했을 경우, XenCenter에서 license expire alter이 뜰 경우 조치 방법입니다.

아마도, Xen Server 6.2에서 설치한 VM host들은 license expire가 발생하지 않을 겁니다.

Xen host의 console로 들어가서

shell# cd /etc/xensource shell# mv license license.org shell# xe-toolstack-restart


위의 조치를 취하면 더이상 expire alert이 뜨지 않습니다.

출처: http://discussions.citrix.com/topic/334904-xenserver-62-free-with-license-expire-message/
2014/03/20 00:48 2014/03/20 00:48
Posted
Filed under Tech/Tip & Trick
Mountain Lion의 Mac용 Outlook의 첨부파일 preview cache 를 삭제 하려면 다음의 파일을 삭제한다.

rm -f ~/Library/Caches/com.apple.QuickLookDaemon/Cache.db rm -f ~/Library/Caches/com.apple.QuickLookDaemon32/Cache.db
2012/10/16 16:55 2012/10/16 16:55
Posted
Filed under Tech/Tip & Trick
Tor를 막을일이 생겼다 기록 차원에서 남긴다.

http://www.torproject.org/faq-abuse.html.en
https://check.torproject.org/cgi-bin/TorBulkExitList.py
2011/03/18 04:37 2011/03/18 04:37