차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
| btrfs를_응용한_no-hdd_pc방_구축 [2015/03/04 06:55] – [3. ISCSI 볼륨 만들기] admin | btrfs를_응용한_no-hdd_pc방_구축 [2015/06/18 15:49] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== btrfs를 이용한 No-HDD PC방 구축 ====== | ====== btrfs를 이용한 No-HDD PC방 구축 ====== | ||
| - | |||
| :!: 원글 링크 : http:// | :!: 원글 링크 : http:// | ||
| - | |||
| - | |||
| ===== 0. 우분투 설치 ===== | ===== 0. 우분투 설치 ===== | ||
| 줄 10: | 줄 7: | ||
| /iscsi < | /iscsi < | ||
| - | * DHCP 서버 | + | * DHCP 서버 |
| - | * TFTP 서버 | + | * TFTP 서버 |
| - | * ISCSI 서버 | + | * ISCSI 서버 |
| - | * BTRFS 화일 시스템 | + | * BTRFS 화일 시스템 |
| - | + | ||
| ===== 1. 네트웍 설정 ===== | ===== 1. 네트웍 설정 ===== | ||
| - | 서버의 IP 어드레스를 설정 합니다 | + | 서버의 IP 어드레스를 설정 합니다 |
| <code vim> | <code vim> | ||
| - | / | + | / |
| - | + | ||
| - | auto eth0 | + | auto eth0 |
| - | iface eth0 inet static | + | iface eth0 inet static |
| - | address 211.168.0.3 | + | address 211.168.0.3 |
| - | netmask 255.255.255.0 | + | netmask 255.255.255.0 |
| - | gateway 211.168.0.1 | + | gateway 211.168.0.1 |
| - | dns-nameservers 168.124.101.2 | + | dns-nameservers 168.124.101.2 |
| </ | </ | ||
| - | | + | |
| ===== 2. 서버 프로그램 인스톨 ===== | ===== 2. 서버 프로그램 인스톨 ===== | ||
| - | | ||
| - | 우분투는 인터넷에 연결되어 있으면 필요한 프로그램을 설치하기가 쉽습니다.. | ||
| - | | + | 우분투는 인터넷에 연결되어 있으면 필요한 프로그램을 설치하기가 쉽습니다.. |
| + | |||
| + | | ||
| < | < | ||
| - | root:/# | + | root:/# |
| </ | </ | ||
| - | * #TFTP 서버 프로그램 설치 | + | * #TFTP 서버 프로그램 설치 |
| < | < | ||
| - | root:/# | + | root:/# |
| - | root:/# | + | root:/# |
| root:/# | root:/# | ||
| </ | </ | ||
| - | * # | + | * # |
| < | < | ||
| - | root:/# | + | root:/# |
| </ | </ | ||
| - | * #iscsi 서버 설치 | + | * #iscsi 서버 설치 |
| < | < | ||
| - | root:/# | + | root:/# |
| </ | </ | ||
| - | | + | |
| ===== 3. ISCSI 볼륨 만들기 ===== | ===== 3. ISCSI 볼륨 만들기 ===== | ||
| - | - 위의 프로그램이 전부 인스톨 되어 있으면 프로그램 세팅에 들어갑니다.. ISCSI TARGET 설정으로 하드가 없는 클라이언트에 하드 디스크 볼륨을 만들어 줍니다.. | + | - 위의 프로그램이 전부 인스톨 되어 있으면 프로그램 세팅에 들어갑니다.. ISCSI TARGET 설정으로 하드가 없는 클라이언트에 하드 디스크 볼륨을 만들어 줍니다.. |
| - | - 처음에 리눅스 인스톨할때 BTRFS 파일 시스템 100G 로 /iscsi 로 마운트 해서 만들 었습니다. | + | - 처음에 리눅스 인스톨할때 BTRFS 파일 시스템 100G 로 /iscsi 로 마운트 해서 만들 었습니다. |
| 주의 : 100G 가 파일시스템을 만들었으면 새로 생성될 이미지 크기는 50% 정도만 사용해야 사용중 Full 상태가 안날수 있습니다. | 주의 : 100G 가 파일시스템을 만들었으면 새로 생성될 이미지 크기는 50% 정도만 사용해야 사용중 Full 상태가 안날수 있습니다. | ||
| < | < | ||
| - | root:/# mkdir / | + | root:/# mkdir / |
| - | root:/# chmod 755 / | + | root:/# chmod 755 / |
| - | root:/# btrfs subvolume create / | + | root:/# btrfs subvolume create / |
| - | root:/# chmod 755 / | + | root:/# chmod 755 / |
| </ | </ | ||
| - | - 볼륨 이미지 생성 | + | - 볼륨 이미지 생성 |
| < | < | ||
| root:/# dd if=/ | root:/# dd if=/ | ||
| </ | </ | ||
| - | 50기가의 빈 파일을 생성합니다 | + | 50기가의 빈 파일을 생성합니다 |
| - | * / | + | * / |
| - | ISCSITARGET_ENABLE=true | + | ISCSITARGET_ENABLE=true |
| - | * / | + | * / |
| <code vim> | <code vim> | ||
| - | Target iqn.2014-08.vitamin.com: | + | Target iqn.2014-08.vitamin.com: |
| - | Lun 0 Path=/ | + | Lun 0 Path=/ |
| - | Alias client1 | + | Alias client1 |
| - | MaxConnecions | + | MaxConnecions |
| </ | </ | ||
| - | * Iscsi target 재시작 | + | * Iscsi target 재시작 |
| < | < | ||
| - | root:/# service iscsitarget restart | + | root:/# service iscsitarget restart |
| </ | </ | ||
| - | | + | |
| ===== 4. 클라이언트가 연결할 DHCP, TFTP, gPXE 설정 ===== | ===== 4. 클라이언트가 연결할 DHCP, TFTP, gPXE 설정 ===== | ||
| - | http:// | + | http:// |
| - | 에서 undionly.kpxe 를 다운로드 합니다.. | + | 에서 undionly.kpxe 를 다운로드 합니다.. |
| - | + | ||
| * dhcp 설정 | * dhcp 설정 | ||
| <code vim> | <code vim> | ||
| / | / | ||
| - | | + | |
| - | subnet 211.168.0.0 netmask 255.255.255.0 { | + | subnet 211.168.0.0 netmask 255.255.255.0 { |
| - | range dynamic-bootp 211.168.0.11 211.168.0.185; | + | range dynamic-bootp 211.168.0.11 211.168.0.185; |
| - | option domain-name-servers 164.124.101.2, | + | option domain-name-servers 164.124.101.2, |
| - | option broadcast-address 211.168.0.255; | + | option broadcast-address 211.168.0.255; |
| - | option routers 211.168.0.1; | + | option routers 211.168.0.1; |
| - | authoritative; | + | authoritative; |
| - | + | ||
| - | } | + | } |
| - | host client1 { | + | host client1 { |
| - | hardware ethernet 00: | + | hardware ethernet 00: |
| - | fixed-address 192.168.0.10; | + | fixed-address 192.168.0.10; |
| - | option host name " | + | option host name " |
| - | if exists user-class and option user-class = " | + | if exists user-class and option user-class = " |
| - | filename ""; | + | filename ""; |
| - | option root-path " | + | option root-path " |
| - | } else { | + | } else { |
| - | filename " | + | filename " |
| - | } | + | } |
| - | } | + | } |
| </ | </ | ||
| - | | + | |
| - | 위에서 중요한것은 클라이언트의 맥어드레스 입니다.. | + | 위에서 중요한것은 클라이언트의 맥어드레스 입니다.. |
| - | 클라이언트의 CMOS SETUP 에 들어가 랜카드로 부팅이 가능하도록 Boot from LAN 을 Enable 로 | + | 클라이언트의 CMOS SETUP 에 들어가 랜카드로 부팅이 가능하도록 Boot from LAN 을 Enable 로 |
| - | 바꾸고 부팅순서도 NETWORK 을 1 번으로 바꾸고 부팅을 하면 | + | 바꾸고 부팅순서도 NETWORK 을 1 번으로 바꾸고 부팅을 하면 |
| - | + | ||
| - | + | ||
| - | + | ||
| - TFTP 설정 | - TFTP 설정 | ||
| - | | + | |
| - | / | + | / |
| - | <code vim> | + | <code vim> |
| - | service tftp | + | service tftp |
| - | { | + | { |
| - | disable | + | disable |
| - | socket_type | + | socket_type |
| - | protocol | + | protocol |
| - | wait = yes | + | wait = yes |
| - | user = nobody | + | user = nobody |
| - | server | + | server |
| - | server_args | + | server_args |
| - | | + | } |
| </ | </ | ||
| - | ############################# | + | ############################# |
| - | + | ||
| - | 아까 다운받은파일 gpxe-1.0.1-undionly.kpxe 는 | + | 아까 다운받은파일 gpxe-1.0.1-undionly.kpxe 는 |
| - | /tftpboot 폴더로 복사하여 이름을 gpxe.kpxe 로 바꾸어 놓습니다. | + | /tftpboot 폴더로 복사하여 이름을 gpxe.kpxe 로 바꾸어 놓습니다. |
| - | + | ||
| - | /tftpboot 폴더는 존재하지 않는 폴더니 새로 만드셔야 합니다. | + | /tftpboot 폴더는 존재하지 않는 폴더니 새로 만드셔야 합니다. |
| - | #mkdir /tftpboot 하시면 됩니다. | + | #mkdir /tftpboot 하시면 됩니다. |
| - | * DHCP 서버 재시작 | + | * DHCP 서버 재시작 |
| < | < | ||
| - | root:/# | + | root:/# |
| </ | </ | ||
| 이렇게 되면... 원본 마스터 서버가 만들어져습니다. | 이렇게 되면... 원본 마스터 서버가 만들어져습니다. | ||
| - | 이제 10개에서 100개 무한대로 파일 시스템 스냅샷입니다. | + | 이제 10개에서 100개 무한대로 파일 시스템 스냅샷입니다. |
| < | < | ||
| - | btrfs subvolume snapshot / | + | btrfs subvolume snapshot / |
| - | btrfs subvolume snapshot / | + | btrfs subvolume snapshot / |
| - | btrfs subvolume snapshot / | + | btrfs subvolume snapshot / |
| </ | </ | ||
| 사용할 pc대수 만큼 만들어 줍니다. | 사용할 pc대수 만큼 만들어 줍니다. | ||
| / | / | ||
| - | 새로만든 스넵샷 pc에 연결 하기 | + | 새로만든 스넵샷 pc에 연결 하기 |
| - | 위에 / | + | 위에 / |
| <code vim> | <code vim> | ||
| - | Target iqn.2014-08.vitamin.com: | + | Target iqn.2014-08.vitamin.com: |
| - | Lun 0 Path=/ | + | Lun 0 Path=/ |
| MaxConnecions 1 | MaxConnecions 1 | ||
| - | Target iqn.2014-08.vitamin.com: | + | Target iqn.2014-08.vitamin.com: |
| - | Lun 0 Path=/ | + | Lun 0 Path=/ |
| MaxConnecions 1 | MaxConnecions 1 | ||
| - | Target iqn.2014-08.vitamin.com: | + | Target iqn.2014-08.vitamin.com: |
| - | Lun 0 Path=/ | + | Lun 0 Path=/ |
| MaxConnecions 1 | MaxConnecions 1 | ||
| </ | </ | ||
| - | dhcp에 연결설정 합니다 / | + | dhcp에 연결설정 합니다 / |
| - | 아까 만들어 놓은 파일에 추가 합니다. | + | 아까 만들어 놓은 파일에 추가 합니다. |
| / | / | ||
| - | <code vim> | + | <code vim> |
| - | subnet 211.168.0.0 netmask 255.255.255.0 { | + | subnet 211.168.0.0 netmask 255.255.255.0 { |
| - | range dynamic-bootp 211.168.0.11 211.168.0.185; | + | range dynamic-bootp 211.168.0.11 211.168.0.185; |
| - | option domain-name-servers 164.124.101.2, | + | option domain-name-servers 164.124.101.2, |
| - | option broadcast-address 211.168.0.255; | + | option broadcast-address 211.168.0.255; |
| - | option routers 211.168.0.1; | + | option routers 211.168.0.1; |
| - | authoritative; | + | authoritative; |
| - | } | + | |
| - | host master { | + | |
| - | hardware ethernet 00: | + | |
| - | fixed-address 211.168.0.10; | + | |
| - | option host name " | + | |
| - | if exists user-class and option user-class = " | + | |
| - | filename ""; | + | |
| - | option root-path " | + | |
| - | } else { | + | |
| - | filename " | + | |
| - | } | + | |
| } | } | ||
| - | host pc01 { | + | host master |
| - | hardware ethernet 00: | + | hardware ethernet 00: |
| - | fixed-address 211.168.0.11; | + | fixed-address 211.168.0.10; |
| - | option host name "pc01"; | + | option host name "client1"; |
| - | if exists user-class and option user-class = " | + | if exists user-class and option user-class = " |
| - | filename ""; | + | filename ""; |
| - | option root-path " | + | option root-path " |
| - | } else { | + | } else { |
| - | filename " | + | filename " |
| - | } | + | |
| } | } | ||
| - | host pc02 { | ||
| - | hardware ethernet 00: | ||
| - | fixed-address 211.168.0.12; | ||
| - | option host name " | ||
| - | if exists user-class and option user-class = " | ||
| - | filename ""; | ||
| - | option root-path " | ||
| - | } else { | ||
| - | filename " | ||
| - | } | ||
| } | } | ||
| - | host pc03 { | + | host pc01 { |
| - | hardware ethernet 00: | + | hardware ethernet 00: |
| - | fixed-address 211.168.0.13; | + | fixed-address 211.168.0.11; |
| - | option host name " | + | option host name " |
| - | if exists user-class and option user-class = " | + | if exists user-class and option user-class = " |
| - | filename ""; | + | filename ""; |
| - | option root-path " | + | option root-path " |
| - | } else { | + | } else { |
| - | filename " | + | filename " |
| - | } | + | } |
| + | } | ||
| + | host pc02 { | ||
| + | hardware ethernet 00: | ||
| + | fixed-address 211.168.0.12; | ||
| + | option host name " | ||
| + | if exists user-class and option user-class = " | ||
| + | filename ""; | ||
| + | option root-path " | ||
| + | } else { | ||
| + | filename " | ||
| + | } | ||
| + | } | ||
| + | host pc03 { | ||
| + | hardware ethernet 00: | ||
| + | fixed-address 211.168.0.13; | ||
| + | option host name " | ||
| + | if exists user-class and option user-class = " | ||
| + | filename ""; | ||
| + | option root-path " | ||
| + | } else { | ||
| + | filename " | ||
| + | } | ||
| } | } | ||
| </ | </ | ||
| - | 위에 | + | 위에 |
| - | pc01 스냅샷 파일을 만들고 iscsi에서 연결할 스냅샷 이미지을 path을 설정하고 | + | pc01 스냅샷 파일을 만들고 iscsi에서 연결할 스냅샷 이미지을 path을 설정하고 |
| - | tftp 부팅시 iscs에서 pc01에 만들어 놓은 이미지을 연결합니다. | + | tftp 부팅시 iscs에서 pc01에 만들어 놓은 이미지을 연결합니다. |
| - | + | ||
| 만약 pc01번을 사용하다 초기화 해야될 상항이 생기면 | 만약 pc01번을 사용하다 초기화 해야될 상항이 생기면 | ||
| < | < | ||
| - | #ietadm --op delete --tid=1 --lun=0 | + | #ietadm --op delete --tid=1 --lun=0 |
| - | #btrfs subvolume delete / | + | #btrfs subvolume delete / |
| - | #btrfs subvolume snapshot / | + | #btrfs subvolume snapshot / |
| #ietadm --op new --tid=1 --lun=0 --params Path=/ | #ietadm --op new --tid=1 --lun=0 --params Path=/ | ||
| </ | </ | ||
| 이렇게 명령어 치시면 0.1초도 안되 초기화가 됩니다. | 이렇게 명령어 치시면 0.1초도 안되 초기화가 됩니다. | ||
| - | 프로그램 추가 하거지 삭제 하실꺼면 처음 만들어 놓은 master 이미지로 부팅해서 | + | 프로그램 추가 하거지 삭제 하실꺼면 처음 만들어 놓은 master 이미지로 부팅해서 |
| 추가 하거나 삭제 하시고 | 추가 하거나 삭제 하시고 | ||
| - | master 이미지에 윈도우 넣기는 | + | master 이미지에 윈도우 넣기는 |
| 일반 pc에 하드 달고 정상적이 윈도우 설치하고 다른 파티션에 고스트 이미지 만든다음 | 일반 pc에 하드 달고 정상적이 윈도우 설치하고 다른 파티션에 고스트 이미지 만든다음 | ||
| - | 윈도우 제어판 관리도구에 iscsi 클릭 | + | 윈도우 제어판 관리도구에 iscsi 클릭 |
| - | 연결에 만들어놓은 서버 ip 넣구 연결 | + | 연결에 만들어놓은 서버 ip 넣구 연결 |
| 그러면 master, pc01, pc02 pc03, 나오면 master 연결 | 그러면 master, pc01, pc02 pc03, 나오면 master 연결 | ||
| - | 그러면 윈도우에 물리적하드가 생성됩니다. | + | 그러면 윈도우에 물리적하드가 생성됩니다. |
| 관리도구 디스크에서 온라인 시키고 포맷 한다음 | 관리도구 디스크에서 온라인 시키고 포맷 한다음 | ||
| 아까 만들어 놓은 고스트 이미지 새로연결된 iscsi 에 밀어 놓기 하면 끝납니다. | 아까 만들어 놓은 고스트 이미지 새로연결된 iscsi 에 밀어 놓기 하면 끝납니다. | ||