Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
  왜 Windows 2008은 Disk를 많이 쓰나요? 
작성일시 : 2011. 8. 8. 22:08 | 분류 : 카테고리 없음

오늘 글을 연속 3개 올리는군요.
너무 블로그를 소홀히 했던거 같습니다.

그리고 항상 그렇지만 제 글은 항상 약 50%의 신뢰도만 갖는다는거… 무책임하게 그러면서 왜 글을 올리냐고 물어보면 할 말은 없지만…ㅡㅡ;;

Windows 2003과 Windows 2008 간의 인스톨 및 Role / Feature 추가에 대한 차이점

Windows 2003의 경우 필요한 Binary 파일을 CD 및 Service Pack으로 부터 읽어서 System32 밑에 기록합니다.

Windows 2008의 경우 설치 시 모든 컴포넌트 (Role 및 Feature를 위한 설치 파일, 설정, 레지스트리의 합본)를 우선 WinSxS에 Staging (아직 사용은 하지 않는 즉 System 32 밑에 Hard Link를 생성하지 않는 다시 말해 비 활성화된)해 놓은 후 실치될 파일들만 확인하여 System 32 밑에 기록 (Hard Link의 생성 / Projection) 합니다.

그러므로 Windows 2008에서 항상 이야기하는 “설치본이 통합 됐다.” 라는 말의 의미를 WinSxS 를 의미합니다.

다시 잠깐… 그렇다면 System 32와 WinSxS에 파일이 2개가 동시에 존재 하는 게 아닌가? 하는 의문이 듭니다.

그렇지 않습니다. HDD에 존재하는 파일은 1개 이며, 이에 대한 Hard Link가 2개가 존재 하는 것입니다.

image

어 파일이 동일하고 Disk에 Allocate 되는 위치도 같은데 그럼 왜? WinSxS의 크기는 커지는 거야?

버전업이 된 컴포넌트들은 당연히 System32밑에 바로 적용이 되게 됩니다. (System32는 예를 들어서 설명하기 위한 위치 이며 컴포넌트에는 바이너리 파일 부터 레지스트리 설정 파일들까지의 합을 의미하는 것이므로 항상 System 32 밑에 존재 하지는 않습니다.)

하지만 이전 버전들의 a.exe 가 완전히 사라지지 않습니다. 단지 WinSxS에 남겨 두게 됩니다.

다시 말해서 1.0 버전의 a.exe가 있습니다. 이는 System32\a.exe v1.0 과 WinSxS\a.exe v1.0이 있다는 의미 입니다. 그러므로 파일 Allocate Size는 같습니다.

그리고 이 a.exe가 1.1 버전으로 Upgrade 되게 되면 System32\a.exe v1.1 과 WinSxs\a.exe v1.0, a.exe v1.1이 병렬로 존재하게 됩니다. 그래서 사이즈가 점차 늘어나게 되는 거죠.

System 32 밑에 있는 CPFilters.dll 날짜 및 위치를 기억하세요!!!!!!

clip_image003

WinSxS에는? 2개의 버전이 있내요… : )

clip_image005

내용을 보니깐 WinSxS의 해당 파일 중 최신버전의 CPFilters.dll은 현재 설치된 녀석과 같은 놈이군요!!!!!!!

image

그렇다면 Service Pack 1 업그래이드를 한 이후 특정 Role이나 Feature를 활성화 시키면, 당연히 Service Pack1이 적용된 버전의 컴포넌트로 활성화 되게 됩니다.
왜냐하면 이전에 말한 것과 같이 WinSxS에서 Staging만 된 녀석들도 이미 업그래이드가 모두 되어 있으므로…(됐다기 보다는 추가로 기록되어…)

만약 특정 컴포넌트들이 아직 업그래이드가 되지 않았다면 이는%windir%\WinSXS\Pending.xml 에 기록되고, 재부팅 이후 적용 되게 됩니다.

자 다시 말해서 Service Pack을 적용했고, 특정 hotfix 들이 해당 Service Pack에 포함되어 있다면 무! 조! 건! 이는 적용되게 됩니다.

적용이 되지 않았다면%windir%\WinSXS\Pending.xml 를 한번 들여 보거나 혹은%windir%\Logs\CBS\CBS.log 를 한번 들여다 보시는게 좋겠죠?

이는 Windows 2008의 Component Based Servicing 의 향상된 기능으로 자세한 내용은http://blogs.technet.com/b/askperf/archive/2008/04/22/understanding-component-based-servicing.aspx 를 한번 읽어 보는 것도 좋습니다.

마지막으로 이렇게 필요없는 이전 버전의 컴포넌트를 어떻게 하느냐…

DISM이라는 새로운 툴이 나왔습니다. Windows 2008 R2 및 Windows 7 부터 쓰는 툴인데 이녀석을 통해 Role 및 Feature의 활성화 및 비 활성화 그리고 추가로 이제 더이상 쓰지 않는 (보통 Service Pack 단위) 컴포넌트를 제거할 수 있습니다… : )

dism /online /cleanup-image /spsuperseded (실행은 주의 깊게!!!!!!!!!)

PS. 적당한 Root Partition Size는? 80GB 정도를 애기하는데… 메모리가 어마어마하게 큰 경우!!!!!!!!!! Paging File Size 및 Hibernation File Size 도 고려를 해야 겠죠?

요세는 147GB SAS가 보편화 되서 걍 2개를 Mirror로 묶어 쓰는게… ㅡ,.ㅡ;;

|