네이티브 자원으로 돌릴 수 있는거임?
도커 자체가 호스트 OS위에서 컨테이너 돌리는걸로 알고 있는데
VM쓰게 되면
호스트 OS위에 -> VM -> 그리고 그 위에서 도커 도는거라.. 네이티브 자원은 자유롭게 못쓴느거 아닌가? (VM에 할당된 자원만 사용 가능..)?
네이티브 자원으로 돌릴 수 있는거임?
도커 자체가 호스트 OS위에서 컨테이너 돌리는걸로 알고 있는데
VM쓰게 되면
호스트 OS위에 -> VM -> 그리고 그 위에서 도커 도는거라.. 네이티브 자원은 자유롭게 못쓴느거 아닌가? (VM에 할당된 자원만 사용 가능..)?
Vm쓰면 vm에 할당된 부분이 격리되는거 아님?
vm안에서 격리되면.. 도커 돌릴 때 뭔가 퍼포먼스에 문제가 있거나 하지 않을까 싶어서
도커 컨테이너가 쓸수 있는 하드웨어 자원이 vm에 할당된 자원으로 한정되는거임
그럼 내가 이해한게 맞는거군.. 떙큐.. 도커를 맥에서 네이티브로 못돌린다던데 hyperkit인가 이거 지원되면 네이티브로 돌릴 수 있는거 맞으려나..
vm안에서 또 격리되는거지
vm안에서 격리되면.. 도커 돌릴 때 뭔가 퍼포먼스에 문제가 있거나 하지 않을까 싶어서
vm 만큼 오버헤드 먹는거 ㅇㅇ 도커오버헤드는 vm 보다 적음
근데 도커보다 Podman 이 낫다더라 데몬없어서 메모리도 적게먹고
글쿠만.. 궁금한게 도커를 맥에서 네이티브로 못돌린다던데 hyperkit인가 이거 지원되면 네이티브로 돌릴 수 있는거 맞음?
맥은 모르겠음
찾아보니 아닌갑네.. 나는 리눅스에 있는 hypervisor기반으로 도커를 돌린다고해서 비슷한 이름인 hyperkit이 나오면 도커가 잘 동작하는지 알았쥐..
걍 docker는 리눅스 고정으로 하고 docker-machine으로 새로운 플랫폼들 아답터 관리하는건가; 어렵당..
https://dev.to/ericnograles/why-is-docker-on-macos-so-much-worse-than-linux-flh
<- 도커 for Mac 은 자체 리눅스 vm위에 올라가서 느린거라고 그러네
현재 도커자체를 네이티브로 못돌리니까 vm위에올라간다 여기까진 되었는데 나는 hyperkit만 있으면 자동으로 완성되는줄 알았지.. 알고보니 그 기술을 docker-desktop에 구현해놓고 앞으로 라이센스 장난질 할것 같네..ㅠ
* hyperkit만 있으면 맥에서 도커를 네이티브하게 돌리는게 자동으로 될줄알았음
네이티브가 되려면 설계상에서의 지원이 있어야하는데 이 부분은 애플이 인텔이랑 암드에 밀리는 것 같아 인텔이랑 암드는 vm이 현재 네이티브야
설계상의 지원은 된것같은데. (m1말고 인텔기준) ㅇㅇ hyperkit 이라는게 docker 내부에서 잘 도려면 추가적인 구현이 필요하다라는것에 대한 생각을 못한것같아.
이미 VM은 OS가 링제로에서 구별되고 도커 컨테이너도 링원에서 메모리가 격리 구별되고 CPU 아키텍처에서 오버헤드 걸리는 건데 그건 이미 패시브라 요새 아키텍처에서는 큰 차이 없어 ㅇㅅㅇ 요새는 CPU 아키텍처 수준에서 가상화 기술을 지원함 그래서 인터파크도 논리가상화 쓰는데 몇십만명 접속 큰 서버 무리 없이 잘 돌아가잖아
맥은 몰겠다
인텔이랑 AMD는 CPU에서 링제로라는 가상화를 하이퍼바이저 위해서 오로지 가상화 기술 지원하려고 링제로 라는 보안 시스템을 만들어냄 그래서 몇개 명령어 추가되고 CPU내부 설계도 그렇게 나옴
요새는 하드웨어 레벨에서 가상화를 돌리기 때문에 발전이 많이 됐지
보안 단계가 링3부터 링1까지만 있다가 링0를 추가했는데 오로지 가상화 지원을 위해 아키텍처를 갈아엎어서 인텔이랑 암드는 오버헤드가 하드웨어단임 그렇게 차이 없어
그럼 VM을 돌릴 때 하드웨어에서 가상화+동시성을 염두해두고 고려해서 예전보다 많이 나아졌다는 뜻?
요샌 맥 빼고 인텔 암드는 vm은 완전히 네이티브가 되었다고 보면 돼 아예 인텔이랑 암드에서 설계를 링제로 만들면서 바꿨으니까
그 맥이라는게 인텔맥도 포함?
예전엔 vm이 링0가 없을 땐 링1으로 소프트웨어로 돌려서 오버헤드가 무진장 컸음
애플 OS가 인텔 맥 위해서 설계된 게 아니기 때문에 인텔맥도 가상화는 아직 안된다고 봐야지
그리고 인텔이나 암이 지원한게 몇세대부터야? 꽤 오래전이얌?
인텔맥은 CPU만 고급인텔이고 매킨토시가 아직 지원을 제대로 안하니까
흠.. 그럼 너가 말하는 환경은 Windows OS? or Linux OS?
그 시기는 너가 찾아봐 나도 이런 정보들 해외 인터넷 찾아가며 얻은 거라
윈도우OS랑 리눅스OS 두가지 다의 vm은 하드웨어 네이티브 단임 링0에 추가 설계된 CPU 지원 명령어 사용해서 접근하는 거임
아 헷갈리네.. OS단에서 그러면 CPU가 지원해주는 기능들을 써야한다는건데 애플 OS는 지원안되니까 애플 OS가 켠 VM도 링제로인가 뭔가의 혜택을 못받는다는거지?
윈도우랑 리눅스는 제대로 가상화 지원하는데 애플이 문제지
고렇다는 말은 애플 OS에서 VM으로 리눅스 올려도 하드웨어 서포트는 못받는다는거지>? (애플 OS가 지원안한다는 가정)
근데 애플은 크게 나도 잘 모르겠음 ㅇㅅㅇ
저 가정하에는 맞음? 애플 OS가 현재 CPU아키텍쳐에서 지원하는 기능들을 서포트 안하고 있다고 가정하면.. VM올려도 혜택못받는거지? 헷갈령
VM이라는게 호스트 OS위에서 도는거니까.. 아키텍쳐랑 소통을 할일이 있을까도 싶은데.. 하는건가..?
애플의 가상화기술이랑 리눅스의 가상화 기술이랑 어셈블리가 다르니까 도커 컨테이너는 리눅스용으로 설계된 거라 아직 맥의 가상화를 지원을 잘 안하는 거 같음 네이티브 단을 집적 건드려서 활성화해야하는 거라 코드가 아예 바뀌어야 지원이 되겠지
링제로 추가하면서 CPU에 추가된 명령어 세트가 있는데 이걸로 활성화를 해야하는데 이부분이 맥이랑 리눅스가 다르니까 코드가 아예 바뀌어야 한다고 보면 되지
어려운 내용인것같은데 덕분에 넘 쉽게 입문할 수 있었다.. 새벽에 고마워!
코드가 아예 바뀌어야 하는 부분을 전부 소프트웨어로 처리하게 되니까 도커를 맥에서 돌려도 소프트웨어적인 오버헤드가 생긴다는 거야 윈도우랑 리눅스는 인텔이랑 암드가 오래 전부터 협력으로 이 문제를 해결했고 이 모든 문제는 도커가 맥의 가상화를 위해 설계된 게 아니고 인텔이랑 암드가 가상화는 좀 더 빠른 지원이 있는 거 같음
아무튼 결론은 인텔이랑 암드는 오래전부터 vm은 전부 하드웨어단에서 오버헤드가 걸리게 아키텍처가 바뀌었다는 거지
그래서 그걸 위해서 링0가 오로지 하이퍼바이저 위해서 나온 거고 오로지 그 기능만을 위해 링3~1에다가 링0가 추가됨
링0에서는 OS끼리의 메모리 격리가 가상으로 일어나 링1은 OS 내부에서 운영체제 같은 프로그램보다 높은 수준의 메모리 격리가 가상으로 일어나고
말은 가상이라고 썼지 다 하드웨어 단에서 일어남 요새는
참고로 도커 컨테이너는 링1을 이용하는 거라서 해커도 컨테이너 끼리 해킹을 못한대
컨테이너 하나 루트 권한 장악해도 다른 컨테이너를 접근을 못한다는 거야...그래서 도커 컨테이너는 해킹 보안상의 엄청 큰 이점이 있지
VM기술은 링0 도커컨테이너는 링1 (의도적으로 링1으로 한거라고 믿겠음) 다른 컨테이너기술은 어떻게 구현하냐에 따라 다르겠네?
맞아 그래서 예전에 virtualbox가 있는데 이게 링0아키텍처가 없을 때 나온 거라서 링1에서 격리가 일어나는 거라 보안상으로 운영체제끼리의 완전한 격리도 아니고 소프트웨어적으로 다 구현한 거라 소프트웨어적인 오버헤드가 엄청 컸지
그럼 링0는 가장 most priviliged이니까 뚫리면 vm까지 뚤힐면 사실상 host os까지 뚫리는거네?
도커 컨테이너가 링3라고 하네 ㅇㅅㅇ
그렇지 링0은 하이퍼바이저로서 vm의 os사이를 격리하는 거라서
근데 링-1도 있어서 호스트OS는 어느 레벨에서 보호되는지는 나도 알아봐야해
근데 너 말이 맞을 듯
When hardware virtualization (i.e. VT-x or AMD-V) is enabled , the hypervisor (i.e. VirtualBox itself) runs in VMX root mode (aka ring -1), and virtual machines run in VMX non-root mode (aka ring 0). This is also how other hypervisors work.
내가 말한 거 잘 찾네 ㅇㅅㅇ
virtualbox도 hypervisor구나.... 나는 왜 지금까지 vm이라 생각햇는가 쩝
아니 vm-ware같은거..
너는 개발 공부 같은 거 잘 할 듯 관련된 거 다 찾아보구...ㅇㅅㅇ
내가 말한 거 찾아줘서 고마워 ㅇㅅㅇ
덕분에 공부할 주제 찾았당... 배경지식 소개없었으면.. 아마 공부할 생각조차 안했을거야 ㅠㅠ
잘자 그리고 프갤에도 앞으로 자주 와 ㅇㅅㅇ
180.71 ip로 프갤에 다른 친구도 있는데 너가 오면 너라고 기억하고 싶어 ㅇㅅㅇ
나 님이랑 대화만이해봄 ㅎㅎ
너는 뭐를 좋아해 ㅇㅅㅇ 주력 언어가 모얌 ㅇㅅㅇ 난 C++/유전인공지능 ㅇㅅㅇ
유전 알고리즘 마스터임 ㅇㅅㅇ
신경망 이론도 나 혼자 만들었음 ㅇㅅㅇ
저는 그냥 웹땔깜하면서 밥벌어먹고사는사람입니다~ 저번에 Java로 머신러닝 알고리즘 구현해둔 사람인가.
아니양 나는 나트륨찡만 로그인했어 ㅇㅅㅇ
언어는 뭐 써?? 자바? 프레임워크는 혹시 스프링 부트 써?
님은 뭐 좋아함 ㅇㅅㅇ 근데 트러블슈팅 능력 내가 지켜봤는데 수준급인 거 같음 ㅇㅅㅇ
암거나 써용~ 장고는 안써본듯. 스프링부트 쓸바에 스프링쓰고싶당~ 어노테이션 개같아
님 저에대한 환상이 너무 크신듯;; 저 좇밥이고 님이 좋게봐주신거 우연히 걸린거임.. 함튼 좋게봐주셔서 감사함.. ㅎㅎ;
오 다 쓴다니깐 노련한 사람 처럼 보이네 ㅇㅅㅇ 역시 언어 뭐가 좋다 이건 학식들이 쓰는 글이였어 ㅋㅋ
뭘쓰든 배울건 있으니까 걍 쓸 수 있을 때 써보는게 남
잘 지내고 우리 같이 꼭 성공해서 나중에 같이 프갤에 휫자 돌릴 정도가 되쟝 ㅇㅅㅇㅋ
나도 PHP 좋아함 혹시 pfSense라고 들어봤어? PHP가 보안상 설계미스가 많잖아 근데 pfSense는
무려 방화벽임 그것도 상용으로 가장 많이 쓰이는 오픈소스 PHP 방화벽임
이거 보고 보안미스는 아무래도 언어 문제가 아닌 것 같아서 나는 여전히 PHP를 좋아함 ㅇㅅㅇ
나중에 너도 pfSense가 어떤 식으로 보안을 설계했는지 함 핵심 아이디어 찾아봐..깃헙 공개라서 나중에 봐도 됨 ㅇㅅㅇ
그리고 파이썬도 거대 서비스 하기엔 좀 느리다는데 장고가 느린 거였고 RestAPI인 FastAPI백엔드는 자바 고Go 급으로 퍼포먼스가 빠르대 이것도 역시 언어 문제가 아니었음
pfSense는 상용 엔터프라이즈급이고 이걸로 설계된 방화벽 하드웨어가 많대 ㅇㅅㅇ
나는 C++ CUDA PHP Python Java 좋아하는데 너도 언어는 다 좋아한다는 거지? ㅇㅅㅇ 흠 괜히 마음이 편안해지네 ㅇㅅㅇㅋ
화이팅이야!!
저는 좇밥 주니어라 걍 배우는걸 좋아하는거지 님만큼의 깊이는 없어용
왜 울어 ㅇㅅㅇ
나는 사실상 초본데 ㅇㅅㅇ 너가 더 잘함 ㅇㅅㅇ
화이팅 다음에 또 보장!!ㅇㅅㅇㅋ