독까의 이야기

윈도우 버전 업그레이드 문의가 주기적으로 들어와서 버전업 테스트를 한다.

이번 테스트는 Windows Server 2012 R2 에서 Windows Server 2019 로 바로 업그레이드가 되는지 확인해본다.

업그레이드야 되겠지만, 내부 프로그램 및 설정도 정상 작동되는지 확인하고자 한다.


# Windows Server 2019 설치 이미지 삽입 후 실행하면 아래와 같이 나온다. 그냥 권장 사항대로 클릭하고 넘어간다.


# GUI 환경이 필요하니까 두 번 째 항목으로 선택 후 진행 한다.


# 라이선스 관련 나오긴 하는데 그냥 동의 하고 넘어간다.


# 유지할 항목 선택 하라고 나오는데, 2008 에서 두 단계 이상 업그레이드 시에는 "개인 파일, 앱을 유지합니다." 가 선택이 안되는데 2012 에서는 가능하다.

Windows Server 2016 에서 기능 추가 된 업데이트 버전이 Windows Server 2019 이기 때문이 것 같다. 

윈도우 데스크톱으로 치면, 2015년에 발매 된 Windows 10 은 기능 추가 및 업데이트가 진행되어도 계속 10 네이밍을 쓰는 것과 마찬가지로 보면 될 듯 하다.

아래 링크에서 윈도우 버전별 기능 비교가 가능하니 참고.

https://www.microsoft.com/ko-kr/cloud-platform/windows-server-comparison


# 온라인으로 업데이트 다운로드 및 설치가 진행된다.

이러다가 리부팅 한 번 하고 나면 아래와 같이 2019 계열로 변경되고 또 업데이트를 한다. 언제 끝나냐.


# 리부팅 몇 번 반복되고 나서 2019 로 업그레이드가 되었다.


기존 설치 프로그램들 실행해보니 정상 작동 확인 되었다.


정품 인증은 2019 버전으로 다시 진행해야 된다.




# OS 업그레이드 테스트 종료

Windows Server 2008 R2 이하 버전 서버를 2019 까지 업그레이드 하려면

2008 -->> 2012 -->> 2019 순서대로 진행하면 될 것 같다.

2016 은 스킵해도 되니깐 어느 정도 이득 봤다고 볼 수 있지 않나 싶다.



# Windows Server 설치 및 업그레이드 MS 기술 문서

https://docs.microsoft.com/ko-kr/windows-server/get-started/installation-and-upgrade


최근 일부 업체들에서 요청되는 사항이 중첩되는데, 내용을 살펴 보면 아래와 같다. 


KISA, 한국정보인증을 비롯한 각 기관에서 권장하는 SSL Protocol 은 TLS1.2 이며 TLS1.1/ TLS1.0 / SSL 2.0 / SSL3.0 은 보안에 취약하여 사용이 권장되지 않습니다.


따라서 구 버전의 프로토콜(SSL2.0/SSL3.0/TLS1.0/TLS1.1)을 은 반드시  SSL Protocol 설정을 TLS 1.2이상 버전으로 변경 하시기 바랍니다. 



웹서버 구동 중일 경우, 보안 인증서를 적용하였어도 프로토콜이 하위 버전일 경우 보안상 취약하니 TLS 1.2 이상만 사용 하도록 해라 이다. 


윈도우 서버의 경우 레지스트리에서 항목 추가하고 리부팅 하면 완료되는 간단한 작업이다. 


HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\ ----여기 부분----



그런데 레지스트리 넣는 것도 귀찮다면, 아래에 소개되는 프로그램을 권장 한다. 


IISCrypto (https://www.nartac.com/)




홈페이지 들어가면 영어로 설명되어 있는데, 중학교만 나와도 이해될 만한 내용이다. 


비영리 프로그램이므로 다운로드해서 바로 서버에 적용하면 된다. 

IISCrypto 3.0.exe


실행하면 너무나 직관적으로 되어 있어서 금방 적용하고 끝난다. 


구버전에서는 없던 레지스트리 백업 기능이 추가 되어, 레지스트리 수정 후 원복도 가능하다. 


아주 작은 단점은 "IIS Crypto requires Windows Server 2008 and the .Net 4.0 framework or greater." 이 정도? 

뭐 필요하면 구버전으로 돌리거나 레지스트리 직접 수정하면 되니깐 대충 넘어가도 될 것 같다. 


CLI 버전도 있는데 불편하니깐 안쓰는게 낫다. CLI 로 할 거면 레지스트리 직접 수정하고 말지;;;

# Windows Server 2012 이상 버전의 가장 오래된 VSS 백업 복사본 삭제 / 2008 이하는 안 됨


1) 백업 복사본이 여러 파티션에 저장되는 경우 / 저장 영역의 볼륨을 지정

CMD 

WBADMIN DELETE BACKUP -backupTarget:f: -deleteOldest 


2) 백업 복사본이 단일 파티션에 저장되는 경우

CMD 

WBADMIN DELETE BACKUP -deleteOldest


# 스케쥴러 등록시 

위 명령어 실행시 'y' 를 입력해야 정상 작동 되므로 스케쥴러에 등록시에는 아래와 같이 한다. 

1) 배치 파일 생성

oldest_vss_del.cmd

@echo off

echo y| wbadmin delete backup -deleteoldest 


2) 작업 스케쥴러 등록

설정에 맞게 알아서 등록



# 정해진 복사본 수량만 남기고 전부 삭제 / 백업 복사본이 여러 파티션에 저장되어 있어도 설정한 값의 복사본 수량만 남기고 전부 삭제 됨

백업 복사본이 과하게 저장된 서버의 경우 아래 명령어 실행

CMD

WBADMIN DELETE BACKUP -keepVersions:30




# 기타

vssadmin 의 delete 명령어를 이용해서 백업 복사본 리스트 삭제 가능한데, 아래와 같이 오류 메시지 출력하면서 안되는 경우가 있다. 

vssadmin delete shadows /for=H: /Oldest


 


이렇게 되면 

DiskShadow 툴을 이용해서 백업 복사본 삭제를 해야 하는데, 이 프로그램으로 삭제 진행하면 백업 복사본 리스트에 등록 된 항목은 삭제되지 않는다. 

삭제 된 백업 복사본이 사용한 만큼의 디스크 공간은 확보가 되는데, 리스트에는 삭제 된 백업 복사본 항목이 호출 된다. 

CMD

diskshadow

delete shadows oldest H:


스케쥴러에 등록해서 사용시에는 아래와 같이 한다.

1) 스크립트 파일 생성

oldest_vss_del.txt

delete shadows oldest H:


2) 작업 스케쥴러 등록

diskshadow.exe -s h:\oldest_vss_del.txt


카탈로그 전체를 날릴게 아니라면 그냥 이런 방식이라도 사용해야 한다. 

파워쉘로 가능할 것 같은데........테스트 후 추가 해야 할 것 같다.