제2의 비엔지니어 인생관을 꿈꾸며

Posted
Filed under Study
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
(use regedit.exe or regedt32.exe to modify the registry)
  • wmic product (which only shows installed software through msiexec, fast but incomplete)
  • sc query type= driver (for installed drivers)
  • wmic qfe (for installed Windows updates)
  • How to uninstall software depends on where you found the program to uninstall. Respectively you should:

    • Use the UninstallString registry value as commandline
    • Use msiexec /x package.msi (More info)
    • Use pnputil -u -f drivername.inf (More info)
    • Use Wusa.exe patchname.msu

    사용자 삽입 이미지

    서버코어 모드에서는 UI지원이 한정되어 있어서 파워쉘이나 명령줄로 처리를 해야되는 경우가 종종 있습니다. 필자는 파워쉘은 커녕 명령어 조차도 제대로 외우지도 못하고 구글에 검색하기만 했었는데 서버코어에 올라간 어플리케이션이나 에이젼트를 삭제할때는 레지스트리를 삭제하는게 아니고 명령줄을 복사해서 커맨드에 붙여넣고 실행하면 바로 언인스톨을 진행합니다.

2016/11/05 18:19 2016/11/05 18:19
Posted
Filed under Study
윤지네 홈쇼핑 있었을때였습니다. RAC 오라클 서버였는데 언제부터인가 오라클이 차지하는 메모리를 제외하고 점점 메모리 사용율이 높아져만 갔었습니다. 작업관리자를 열어봐도 오라클 이외에 딱히 쓰는게 보이지가 않았던? 희안한 증상이였죠.
사용자 삽입 이미지

그럼 커널쪽에서 뭔가 먹고 있나 싶었습니다.
 위 그림으로만 봤을때는 딱히 문제시 될만한 프로세스가 없습니다. 그냥 정상처럼 보일뿐입니다.
사용자 삽입 이미지

그런데 실제 사용 메모리는 거의 끝까지 사용하고 있다는겁니다. 뭐 친절하게도 커널에 넌페이지 메모리가 보통 이상을 잡아먹는것이 보입니다. 흠 그럼 커널에서 누수를 일으키고 있는게 확실하단 말이네? 좋았어 그럼 이 범인을 반드시 잡아주마 하고 poolmon을 실행시켰습니다.
사용자 삽입 이미지
바이트로 정렬했더니 Proc 와 Thre 즉 프로세스와 쓰레드가 많은 메모리를 먹고 있다는걸 보여주고 있습니다. 지금까지 커널메모리 누수는 sys 같은 커널에 상주하고 있는 드라이버나 백신같은것들이 대부분이였는데 이증상은 의외였습니다. 한번도 경험해보지 않은 특이케이스중 X-File 같은 증상이였습니다. 이때까지만 해도 저 프로세스와 쓰레드가 정확히 무었인지 밝혀내지 못한 단계였기 때문에 추측으로 메모리 누수가 발생했던 시점을 유추해서 그당시 프로그램 설치했던 상황으로 용의자를 뽑았습니다. 딱 하나가 걸렸습니다. DB 모니터링을 하는 맥스게이지가 그당시 에이젼트를 설치했던 날이였습니다. 하지만 맥스게이지는 아무런 죄가 없는 프로그램이였습니다. 정황상 맥스게이지가 그 시점과 거이 동일했기 때문에 당신네 프로그램 때문에 지금 난리가 났다고 당장 직원보내라고 협박성 덤탱이를 씌웠던 그런날이 있었고 그 죄없는 어린직원은 얼굴이 잔뜩 겁먹고 온 상태여서 딱히 니탓내탓할 그런 액션을 취하지 않았습니다. 그런데 혹시나 싶어서 내가 헛다리 짚었으면 어뜩하지?라는 불안감에 다시 제대로 분석해보기로 했습니다. 실제 커널의 메모리 상태를 확인하기 위해서는 윈도우는 디버깅 모드를 활성화 시켜야 됩니다. 기본값은 보호를 위해 비활성 되었습니다.
bcdedit /debug on
위명령어로 디버깅 모드를 진행할수 있습니다. 그리고 재부팅후에 다시 증상이 발생했을때 WinDBG 유틸을 이용하여 커널디버그 모드를 들어갑니다.
!vm 명령을 사용하면 커널에 사용되는 메모리 정보가 주르륵 나옵니다
사용자 삽입 이미지

왠걸? 정말로 범인이 밝혀졌습니다. 역시나 poolmon에서 출력해서 보여줬던 결과처럼 프로세스가 무수히 많이 점유하고 있었던 것이였습니다. 이게 또 0kb 용량으로 점유하고 있었기 때문에 프로세스명이 메모리를 차지하고 있다고 출력을 못해주고 객체의 갯수만 많이차지하여 누수를 발생한 현상이였고 이 결과값이 출력되자마자 죄없는 맥스게이지는 누명을 벗게되는 그런날이 있었습니다. 하필 왜 그때 프로그램 설치해가지고...ㅋㅋㅋ
그럼 저 프로세스가 뭐냐면 파로스라는 DB모니터링 프로그램입니다.
사용자 삽입 이미지

그럼 왜 저증상을 불러일으켰냐면 저 문제를 불러일으킬 시점에 라이센스가 만료가 되었습니다. 만료가 되었으면 서비스를 중지를 하던가 삭제를 하던가 해야되는데 그런 통보를 전달해주지 않았기에 그냥 살려둔체로 메모리 누스를 일으켰던 분석하기도 정말 희안했던 케이스중 하나였습니다.
사용자 삽입 이미지

정상적인 커널메모리였을때는 위그림과 같이 넌페이지 커널메모리가 정상적인 값을 보여주고 있습니다.
대부분의 커널메모리 누수는 커널에 상주하는 드라이버,  그리고 백신 필터드라이버 나머지는 운영체제의 핵심들입니다. 운영체제는 특별히 버그이슈나 커널이슈가 존재하지 않는한 거이 메모리 누수가 발생하지 않습니다.(이제까지 그런 문제는 못봤습니다) 벤더사의 초기 드라이버들이 문제를 일으키는 케이스가 흔했었고 두번째로 멀쩡한 드라이버 핸들링하고 놔주지 않는 백신들이 두번째로 치명적인 문제를 보여줬었습니다. 리부팅하면 그런증상이 없어졌기 때문에 대부분의 엔지니어들은 윈도우가 원래 이렇다?리눅스 유닉스는 안그런데 윈도우랑은 호환성이 안맞는다?라고 도피성 결론을 내리고 덮어두는게 대부분입니다.
커널을 사용하지 않는 프로그램들은 유저모드에서 전부 모니터링이 되기때문에 누수에 대한건 금방 분석하고 결과를 유추할수 있습니다.
2016/07/07 02:29 2016/07/07 02:29
Posted
Filed under Study

It is necessary to start SQL Server in single user mode before master database can be restored. It is very easy to start SQL Server server in single user mode. Follow the tutorial SQL SERVER – Start SQL Server Instance in Single User Mode.

Once SQL Server instance is running in single user mode, immediately connect it using sqlcmd and run following command to restore the master database.


RESTORE DATABASE master FROM DISK = 'C:\BackupLocation\master.bak' WITH REPLACE;
GO


사용자 삽입 이미지

MSSQL master 데이터베이스를 리빌드 하고 난후 백업을 복원해야되는 일이 발생했을때 찾아봤던 내용입니다. mater 데이터 베이스가 초기화 되어버리면 계정이나 운영되는 DB 리스트들이 안보이기에 일일이 계정등록하고 매핑 시켜주는 일이 번거로워서 master 백업을 복원해 봤습니다. 시스템 데이터 베이스가 아닌 DB들은 UI 관리도구에서 복원이 가능하지만 master 는 위 내용처럼 싱글유저 모드로 서비스를 시작하고 난후 커맨드로 복원을 진행해야 됩니다.
예전에 클러스터가 떨어졌을때 master 데이터베이스가 크래쉬 나서 서비스가 시작이 안되어 리빌드하고 계정을 일일이 넣어주고 매핑해줬었는데 복원하는 방법이 위와같이 절차만 알고 있으면 복원이 쉽습니다. 모를때는 노가다라도 하면서 일일이 넣어주곤 하는데 이게 DB리스트가 많아지고 계정이 많아지고 그리고 각각의 DB계정들 암호를 모르고 있다면 재앙수준이죠.

2016/06/29 19:54 2016/06/29 19:54
Posted
Filed under Study
Zentyal을 한글로 선택해서 설치하거나 Active Directory 설정에서 한글명은 깨져서 나오는 문제로 인하여 영문이름으로 써야했었는데 아래와 같은 방법으로 폰트 설정으로 깨짐현상을 해결할수가 있습니다. 웹메일에서도 한글명이 제대로 출력되어서 불편함이 없어졌습니다.
Zentyal이 우분투기반에서 만들어졌기 때문에 동일합니다.

Add your locale to /var/lib/locales/supported.d/local, one per line. For instance, to add English language (en_US) append this line:
en_US.UTF-8 UTF-8
ko_KO.UTF-8 UTF-8
Regenerate locales package by running:
$ sudo dpkg-reconfigure locales


$sudo apt-get install fbterm

$sudo apt-get install ttf-nanum-coding //한글 폰트 설치 (14.04에서는 fonts-nanum-coding로 변경)

$sudo fbterm

사용자 삽입 이미지

2016/04/23 21:49 2016/04/23 21:49
Posted
Filed under Study


If you want to know the SMB version that Windows is using, connect a share, open an admin cmd window and run
powershell
Get-SmbConnection

 


OmiOS
Start with current LTS stable: 151014  LTS (long term stable) and optionally update to a newer release
what allows a go back to LTS



Manual Installation:


1. download OmniOS  stable

http://omnios.omniti.com/wiki.php/Installation

You can setup OmniOS from USB  (use .dd file, 1 GB+ USB stick) or CD (.iso)
You can use this imager www.napp-it.org/doc/downloads/usb image.zip
to transfer the usb image to your stick (Windows)

2. Install OmniOS
2a. Option: Install on ESXi, create a new VM (Solaris 10-64) with e1000 and/or  vmxnet3 vnic  (16 GB disk min, 25GB+ suggested)
use 2 GB min RAM (best is 8GB+  or 1/3 of available) and 2 cores
Read my manual about setup napp-in-one: http://www.napp-it.org/doc/downloads/napp-in-one.pdf

2b. Install on Hardware:
You can install Omni + napp-it onto Sata or fast USB sticks >=32 GB)
If you use USB, use reliable/fast sticks, best are USB enclosures with an 2,5" Sata SSD

You can also use one or two Sata DOMs for a boot mirror, see http://www.supermicro.com/products/nfo/SATADOM.cfm
(prefer this over USB)

Read my manual about setup napp-it: http://www.napp-it.org/doc/downloads/napp-it.pdf


Reboot now!

3. After installation, login as root (no pw)

4. setup network. Network is set to (per default): network/physical:default,
enter blue commands at console

4.1 create interface
- list available interfaces and use linkname ex e1000g0:

(optional: enable Jumbo Frames first: dladm set-linkprop -p mtu=9000 e1000go)

dladm show-link
ipadm create-if e1000g0


5. use DHCP (or skip to 6.0 to use a static adress)
ipadm create-addr -T dhcp e1000g0/dhcp


5.1 add nameserver
echo 'nameserver 8.8.8.8' >> /etc/resolv.conf

5.2  use dns (copy over DNS template)
cp /etc/nsswitch.dns /etc/nsswitch.conf

If something happens (typo error), retry, opt. delete interface ex ipadm delete-if e1000g0

5.3 install napp-it (newest free)
wget -O - www.napp-it.org/nappit | perl

5.4 l
start napp-it from your Desktop via Browser
http://serverip:81 (use real server-ip of your server)
You can check your ip at console with command ifconfig

reboot after installation of napp-it  (or check napp-it menu "snapshots - be" that current BE is default)
reboot (mostly not needed)




Next step 6. is an option to 5. (use either 5. dhcp or 6. manual setup)

6.0  add static IP address
  6.1 create static adress
  ipadm create-addr -T static -a 192.168.0.1/24 e1000g0/v4

  6..2 add default route
  route -p add default 192.168.0.254

If something happens (typo error), retry, opt. delete interface ex ipadm delete-if e1000g0

6.3 install napp-it (newest dafault for Free/Pro)
wget -O - www.napp-it.org/nappit | perl

6.4 login to napp-it via any web-browser
(you can request ip via ifconfig -a )
http://ip of your server:81

reboot after installation of napp-it  (or check napp-it menu "snapshots - be" that current BE is default)
reboot (mostly not needed)


Modify OS defaults

The OmniOS defaults are suboptimal regarding network settings (ip-buffer), NFS settings, AHCI Hotplug behaviour (disabled per default) or disk timeouts (up to 3 minutes on problems, way to high should be reduced to a TLER alike timeout of 7s).

On napp-it Pro, you can enable improved settings with the base tuning option in System > System Tuning




7. enable remote root access
Napp-it menu Services-SSH allow root

(Re) Enter a root pw at consoler: passwd root (this creates a SMB pw as well)
You are now able to connect via WinSCP (or putty) as root
passwd root

8. opt.  netatalk 3.1
Using the repo http://scott.mathematik.uni-ulm.de/
wget -O - www.napp-it.org/afp | perl 

9. opt. Update OmniOS to newest
pkg image-update (or pkg update)

10.  opt. install TLS email


Check OmniOS repos for other apps:

http://omnios.omniti.com/wiki.php/Packaging
http://pkg.omniti.com/omniti-ms/en/index.shtml and
http://pkg.omniti.com/omnios/release/en/index.shtml
http://pkg.thetube.ch:10001
http://scott.mathematik.uni-ulm.de/

or use the pkin repo from Joyent
see http://napp-it.org/downloads/binaries.html
http://pkgsrc.joyent.com/installing.html


10. Vmware-tools (ESXi 5.5) and OmniOS

If you want to install VMware tools in OmniOS, you can either mount the tools iso manually according to http://napp-it.org/doc/ESXi-OmniOS Installation HOWTO en.pdf within ESXi or

- open the Installer ESXi iso with 7Zip (file VMware-VMvisor-Installer-5.5.0-1331820.x86_64.iso)
- then open TOOLS.T00 and then the file TOOLS with 7zip

- Open the folder 5.5.0/vmtools
You can see all tool-isos now

- Open Solaris ISO
- Open vmware-solaris-tools.tar.gz
- Open vmware-solaris-tools.rar

- Copy the folder vmware-tools-distrib to your OmniOS /root folder (ex use WinSCP)
- change permissions of this folder to 777 recursively
- open a console on OmniOS (as root) and run perl /root/vmware-tools-distrib/vmware-install.pl

Be aware of problems with e1000 vnics on ESXi 5.5 (see http://napp-it.org/downloads/index en.html )
I suggest to use vmxnet3 vnics until this proble is solved by Vmware

Ensure that the Fibre Channel HBA is Detected

# prtconf -D | grep qlc
pci1077,15d, instance #0 (driver name: qlc)
pci1077,15d, instance #1 (driver name: qlc)

Determine the PCI Address of the Fibre Channel HBA

# mdb -k
Loading modules: [ unix genunix specfs dtrace mac cpu.generic uppc pcplusmp scsi_vhci zfs sd ip hook neti arp usba uhci stmf stmf_sbd qlc fctl sockfs md lofs random idm crypto smbsrv nfs sppp ipc ptm fcp cpc fcip nsmb ufs logindmux ]
> ::devbindings -q qlc
ffffff01cb184040 pciex1077,2532, instance #0 (driver name: qlc)
ffffff01cb183d90 pciex1077,2532, instance #1 (driver name: qlc)
> $q

Now we will need this from the above output pciex1077,2532.

Deactivate the QLC Driver for the Fibre Channel HBA

Remove the default driver (qlc) from the adapter.

# update_drv -d -i 'pciex1077,2532' qlc

Activate the QLT Driver for the Fibre Channel HBA

Add the target driver (qlt) to the adapter.

# update_drv -a -i 'pciex1077,2532' qlt

Reboot the Machine

# reboot

Confirm the HBA is using the QLT Driver

# prtconf -D | grep qlt
pci1077,15d, instance #0 (driver name: qlt)
pci1077,15d, instance #1 (driver name: qlt)

# mdb -k
Loading modules: [ unix genunix specfs dtrace mac cpu.generic uppc pcplusmp scsi_vhci zfs sd ip hook neti arp usba uhci stmf stmf_sbd fctl sockfs lofs random idm crypto cpc smbsrv nfs fcip sppp ufs ptm ipc ]
> ::devbindings -q qlc
> ::devbindings -q qlt
ffffff01cb184040 pciex1077,2532, instance #0 (driver name: qlt)
ffffff01cb183d90 pciex1077,2532, instance #1 (driver name: qlt)
> $q

Configure the SCSI Target Service

# svcs stmf
STATE          STIME    FMRI
disabled       13:27:08 svc:/system/stmf:default

# svcadm enable stmf

# svcs stmf
STATE          STIME    FMRI
online         13:29:54 svc:/system/stmf:default

Display the Status of the SCSI Target Service

The ALUA Status is what allows a LUN to be served via FC and iSCSI at the same time.  We do not require or want it.

# stmfadm list-state
Operational Status: online
Config Status     : initialized
ALUA Status       : disabled
ALUA Node         : 0
2016/04/20 21:51 2016/04/20 21:51