One VM using Multi-User???

aksen123의 이미지

이번에 NAS 를 구매해서, 같은 네트웍 대역으로 묶어놓았습니다.

그런데 각 클라이언트? PC? 에서 VirtualBox (이하 VB) 를 운영할 예정인데요.
VB 의 VM 이미지를 NAS 에 저장했을 때, 다수의 클라이언트? PC? 들 이 NAS 에 접속해서 해당 VM 이미지를 사용할 수 있을까요???

물론 각 클라이언트 댓수만큼 NAS 에 VM 이미지들이 있다면 가능하겠지만... VM 이미지가 하나일 때는 불가능할꺼 같습니다.

그래도 제가 아는 방법 외에 다른 기능, 혹은 VMware Player 와 같은 다른 VM 에 유사한 기능이 있는지 알고 싶습니다.

dist777의 이미지

조금 헷갈리는데...

그러니까..
하나의 OS Image를 복수의 인스턴스들이 동시에 억세스 한다는 말씀이신가요?
적어도 VM == Hypervisor 형태에선 불가능하지 싶은데요.
말씀하시는 방식은 Hypervisor 보다는
차라리 Container ( Docker/LXC/LXD 라던가...좀 더 오래된 OpenVZ 라던가...)쪽을 참고하시는게 좋을것 같기도...

어쨌든, 대중적인 Hypervisor 방식의 솔루션들은
말 그대로 가상의 컴퓨터 본체를 하나 뚝딱! 만들어내는 방식이구요.
가상이긴 하지만 각각의 컴퓨터를 하나의 독립적인 개체로 인식하기 위해서 자신만의 VM Image를 필요로 하지 않겠나 싶구요.
생성된 VM Image 파일 안에는 가상의 H/W정보를 포함, OS부터 실제 FileSystem 까지 몽땅 집어넣죠.
말 그대로, Image 파일 한개(물론 여러개로 분리시키기도 하구요)가 본체 한개의 개념이라 볼 수 있겠죠.
Hypervisor기술은 Virtual Machine을 Physical Machine과는 완전히 분리된 별도의 개체로 인식 가능토록 하는 것이 우선사항이라고 생각합니다.
거기에 반하는 위험요소라면 일단 재껴두고 가는게 맞겠죠

Container의 경우, 실제로 유저가 사용함으로 인해 추가/변경되는 사안은 Container별로 따로 공간을 할당해두지만,
Image 자체를 사용자가 직접 복제시켜서 변경된 걸 완전히 다른 버전으로 분리시키지 않는 한은
OS Image 자체는 가능한한 공유해서 사용하지요. 그나마 Overhead가 적어지지요
( 물론 Hypervisor와는 컨셉도 다르고 특성도 많이 달라지긴 하지만요...)

aksen123의 이미지

현재 클라이언트들이 Win7 환경이기 때문에, 전가상화를 써야 하는건 맞습니다.
그렇다고 Docker 처럼 반가상화 쓰기에는 NAS 성능이...... (그랬다면 서버로 갔어야 하는데...ㅠ)

여러가지로 계속 찾아보니 VirtualBox 의 스냅샷 기능 중에서 '연결된 복제'라는게 있는데, 아마도 NAS 에 오리지널 VM 이미지를 넣고 확장 혹은 추가 데이터 형태만 다른 저장 위치에 생성하는게 가능한지도 궁금해 졌습니다. (이렇게 보면 또 반가상화 같기도 하고...)

답변 감사합니다.

dist777의 이미지

...
엄...저런 기능도 있었네요.

단, 연결된 복제(Linked Clone) 는 원본으로부터 변경된 부분만을 저장하는 Snapshot 방식이기 때문에 복제 이후 원본쪽에 변경이 발생하면 안된다는 거네요.

정리를 해보면,
일단 VM 하나를 만들고 깔끔하게 잘 정리를 해 놓은 후,
요 원본 VM은 OS Shutdown하고, 절대 켜지 않는다! -> 다른 Linked Clone들이 원본으로서 사용해야 하므로 추후 변경사항이 발생하지 않도록 하기 위해...
-> 요 조건을 지켜서 구성한다면 Linked가 몇개가 되든 딱히 문제는 없겠네요.

반대로 좋은 정보를 얻어가는군요...;;;
좋은 정보 감사합니다.

++
첨언드리자면,
VM -> 전가상화, Container -> 반가상화 ...가 아닙니다.

- 전가상: HVM (Hardware Virtual Machine)
- 반가상: PV (Paravirtualization)
둘 다 Hypervisor와 관련한 용어구요.
VMware/VBox/KVM/Xen 등의 다양한 Hypervisor들의 H/W 가상화 방식의 분류라고 보시면 되요.
(제품에 따라 둘 중 하나만 지원하는 경우와 둘 다 지원하는 경우가 있다고..)
HVM은 가상머신이 Physical Machine과 완전히 동일해서 OS Kernel등을 조작할 필요가 전혀 없는 경우(이론상, Resource의 Overhead가 더 커질 수 있음) ,
PV는 OS Kernel등을 조금 수정을 가해서 H/W 가상화 수준을 조금 간소화하거나 다른 VM과 공유수준을 좀 더 높일 수 있는 방식입니다. (Resource 면에서 효율성을 조금 더 높일 수 있다고...)
단, H/W 레벨이 상당히 발전한 현시점에선 PV에 의한 이점이 그다지 큰 의미가 없고,
HVM처럼 VM상의 OS에 별도의 처리를 전혀 하지 않아도 되는 쪽이 관리면에서 더 간편하기도 해서(가능한한 VM과 PM의 간극을 없애는 거죠)
점점 HVM으로 쏠리는 추세라고 보면 되겠습니다.

Container는 "가상화"와는 개념이 조금 다릅니다. "격리화"와 "공유"를 활용한 기술입니다.

aksen123의 이미지

저도 하이퍼바이저를 제대로 아는 상태가 아닌데 마구잡이로 표현한거 같습니다.
말씀하신대로 제 생각은 PV 형태로 구축해야 하는거 같은데, NAS 와 VirtualBox 를 사용해서 환경 구축을 하다보니 정확하지 않은 정보를 토대로 글을 휘갈겨(;;;) 쓰게 되었습니다. (JSP 를 C 언어로 만들어야 하는 느낌이 들더라구요.)

HVM, PV, Container 에 대한 설명, 감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.