리눅스2013.11.30 17:31

출처 : http://cafe.naver.com/jcynohdd


리눅스는 익숙해지면 편하지만 처음써보면 어려운게 리눅스입니다.


강의 환경은 공유기로 진행되므로 착오없으시기 바랍니다.

iscsi를 설치하고, tftp를 설치한뒤 dhcp서버를 만들것입니다.

각각 프로그램들이 하는 역활을 알아보도록 하겠습니다.

ISCSI : 네트워크로 접속해서 실제 하드디스크처럼 쓸 수 있는 프로그램입니다. 윈도우에서 사용이 가능하며 네트워크부팅에서도 사용이 가능해 용이합니다.

TFTP : 네트워크 부팅에 필요한 파일들을 전송해주는 프로그램입니다. 네트워크부팅도 도스처럼되어 텍스트만 나오지만 거기에따라 프로그램도 필요합니다.

DHCP : 스위칭 허브는 DHCP를 자동으로 할당해주지 않습니다. 그래서 손님PC에 수동으로 IP를 설정해주지요. 네트워크 부팅시에는 IP를 수동으로 입력할 수 없기때문에 리눅스가 DHCP서버가 되어 할당해주는 역활을 해줍니다.

보통 다른강의에서는 이미지파일을 만들어서 이미지공간에 윈도우를 넣어 부팅시키는데 이는 문제점이 많습니다.

본격적으로 들어가기전에 이미지에 윈도우를 설치하는것과 파티션에 윈도우를 설치하여 사용하는 방법에따른 차이점을 알고넘어 가겠습니다.

이미지로 할 경우 : 이미지로 할경우 클라이언트 부팅시 이미지를 풀고 파일을 정렬하여 부팅하게됩니다.
파티션으로 할 경우 : 파티션은 이미지처럼 파일로구성된게 아니라서 부팅시 바로 파일을 정렬할 필요 없이 바로바로 파일을 읽게됩니다.

이미지 = 압축해체형
파티션 = 다이렉트형

이미지 생성은 명령어 한줄로끝나지만 파티션은 별도의 설정이 필요합니다.

이미지보단 파티션으로 하시는게 용이합니다.

1.서버 패키지 설치
터미널을 켜신후 아래와같이 타이핑해 서버에필요한 패키지를 설치해줍니다.
(터미널은 왼쪽상단 현재 활동을 클릭하여 왼쪽 메뉴아이콘중 두번째아이콘이 터미널입니다.)
 [root@localhost ~]# yum -y install dhcp tftp tftp-server system-config-firewall git gcc binutils make perl syslinux zlib syslinux-tftpboot.x86_64 scsi-target-utils iscsi-initiator-utils
보통 패키지설치할때 yum -y install dhcp , yum -y install tftp 이런식으로 설치하시는데 저런식으로 띄어쓰기로 구분해서 패키지이름을 입력해주시면 한꺼번에 설치하게됩니다.

파티션 설정
윈도우를 설치할 파티션을 만드셔야합니다.
보통 윈도우가 설치된 c드라이브는 30기가를 주게됩니다. 고로 아래와같이 타이핑해 2번째하드에 파티션을 만들어 줘야합니다.
제가만든 자동프로그램이 따로있으니 노하드 자료실에서 다운로드 받으신후 저장경로는 root폴더에 저장해 아래와같이 타이핑해주시면됩니다.
[root@localhost ~]# chmod u+x partition_setting_program.sh 
[root@localhost ~]# ./partition_setting_program.sh
##########2013. 11. 01. (금) 04:41:25 KST#############
하드 넘버를 입력해 주세요.예:)/dev/sda: 
/dev/sdb2                                                                           #두번째 하드
게임이 저장될 파티션의 용량을 지정해주세요.
300G                                                                                   #넉넉하게 300기가
몇개의 파티션을 만드시겠습니까 ? : 
1                                                                                           #클라이언트 컴퓨터 갯수
파티션의 용량은 얼마로 지정하겠습니까 ? 예)25G : 
30G                                                                                     #윈도우가 설치될공간 30기가
파티션의 시스템 타입을 지정하십시오 HEX Code (기본값 NTFS Code = 7) : 
7                                                                                          #기본값대로 7번

이리저리 설정이 끝난후엔 아래와같이나옵니다.

Disk /dev/sdb: 574.8 GB, 574795808768 bytes, 1122648064 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1572864 bytes
Disk label type: dos
Disk identifier: 0x00000000

      Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            3072  1122648063   561322496    5  Extended
/dev/sdb5            6144    41949183    20971520    7  HPFS/NTFS/exFAT
/dev/sdb6        41954304    62925823    10485760    7  HPFS/NTFS/exFAT

세세히 보실 필요는 없습니다. 두번째하드의 용량에따라 값이 틀리기 때문이지요.

아무튼 확장파티션 하나에 백업할하드 하나, 클라이언트하드가 생성되었습니다.

파티션 설정은 모두 끝났습니다.

TFTP로 전송할 파일들이 들어있을 폴더를 만들어줘야합니다.

아래와같이 타이핑해주세요
[root@lodalhost ~]mkdir /tftpboot
[root@lodalhost ~]chmod 755 /tftpboot
[root@lodalhost ~]restorecon -Rv /tftpboot

명령어를 설명드리자면 mkdir /tftpboot는 tftp폴더입니다.
chmod는 권한설정으로 755권한 즉, tftp프로그램이 폴더에 접근할 수 있도록 권한을 주는것입니다.
마지막 명령어는 형식적인것으로 설명을 하지 않겠습니다

끝나신 후에는 아래와같이 타이핑해 주시고 설정을 해줍니다.
TFTP설정 부분
 [root@localhost ~]# vi /etc/xineted.d/tftp

INSERT키 클릭후 내용을 아래와같이 수정해주세요.

service tftp
{
socket_type = dgram
protocol           = udp
wait = yes
user       = root                                    #tftp가 root권한을 가지도록
server   = /usr/sbin/in.tftpd
server_args = -s /tftpboot                      #기본값에서 /tftpboot로 경로 수정
disable = no                                      #비활성화 유/무 no로 바꿔주세요.
per_source = 11
cps               = 100 2
flags   = IPv4
}

수정 완료후 ESC를 누르고 :wq를 입력하세요.

보통 다른강의에서는 user항목에 nobody로 설정하는데 nobody는 읽기권한 밖에없는 권한입니다.
root권한을 이용해서 스크립트를 엑세스 할 수 있어야 나중에 오류가 없습니다.

그후 systemctl restart tftp.service를 입력해 프로그램을 재시작해줍니다.
[root@localhost ~]# systemctl restart tftp.service
[root@localhost ~]# systemctl status tftp.service
tftp.service - Tftp Server
   Loaded: loaded (/usr/lib/systemd/system/tftp.service; static)
   Active: active (running) since 금 2013-11-01 04:28:37 KST; 4s ago
 Main PID: 15485 (in.tftpd)
   CGroup: name=systemd:/system/tftp.service
           └─15485 /usr/sbin/in.tftpd -s /tftpboot

11월 01 04:28:37 localhost.localdomain systemd[1]: Starting Tftp Server...
11월 01 04:28:37 localhost.localdomain systemd[1]: Started Tftp Server.

[root@localhost ~]# 


오류가 없는것을 확인하면 넘어갑니다.

다음 설정 ISCSI설정입니다.

ISCSI설정
[root@localhost ~]# vi /etc/tgt/targets.conf

INSERT키 클릭후 내용을 아래와같이 수정해주세요.

<target jcy>
        <backing-store /dev/sdb5> #C드라이브로쓸 윈도우 하드디스크 입니다.
                readonly 1
                initiator-address ALL
                device-type disk
        </backing-store>
</target>
<target Ddrive>
        <backing-store /dev/sdb6> #D드라이브로쓸 게임 하드디스크 입니다.
                readonly 1
                initiator-address ALL
                device-type disk
        </backing-store>
</target>

수정 완료후 ESC를 누르고 :wq를 입력하세요.

그후 systemctl restart tgtd.service를 타이핑해줍니다.

별다른 오류가 없다면 tgt-admin -s를 입력해 정상적으로 파티션에 연결됬는지 확인합니다.
[root@localhost ~]# systemctl restart tgtd.service
[root@localhost ~]# tgt-admin -s
Target 1: jcy
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 21475 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rdwr
            Backing store path: /dev/sdb5
            Backing store flags: 
        LUN: 2
            Type: disk
            SCSI ID: IET     00010002
            SCSI SN: beaf12
            Size: 10737 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rdwr
            Backing store path: /dev/sdb6
            Backing store flags: 
    Account information:
    ACL information:
        ALL
[root@localhost ~]# 

다음은 dhcp설정입니다.

dhcp설정
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
INSERT키 클릭후 내용을 아래와같이 수정해주세요.

subnet 192.168.0.0 netmask 255.255.255.0
{
range dynamic-bootp 192.168.0.7 192.168.0.50; #클라이언트 아이피할당 대역
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
max-lease-time 2000;
}

        host client.pc1{
        hardware ethernet 00:00:00:00:00:00; #클라이언트 맥주소
        fixed-address 192.168.0.7; #클라이언트가 할당받을 아이피
        server-name "192.168.0.2"; #리눅스컴퓨터의 아이피
        option host-name "client.pc1";
        if exists user-class and option user-class = "gPXE"{
        next-server 192.168.0.2; #리눅스컴퓨터의 아이피
        filename "undionly.kpxe";
        option root-path "iscsi:192.168.0.2:::2:jcy"; #부팅할 ISCSI경로
        } else {
        filename "pxelinux.0";
        }
}

수정 완료후 ESC를 누르고 :wq를 입력하세요. 

클라이언트 아이피는 클라이언트 피시에 부팅을 네트워크부팅으로 맞춰 부팅하면 나옵니다.
클라이언트가 할당받을 아이피부분은 DYNAMIC-BOOTP에있는 대역 안으로 하셔야합니다.

위 파일네임부분에 undionly.kpxe는 노하드자료실에 있습니다. 저장경로는 /tftpboot입니다.
pxelinux.0파일은 다음강의에서 언급됩니다.

그뒤, 서비스를 재시작해줍니다.
[root@localhost ~]# systemctl restart dhcpd.service
[root@localhost ~]# systemctl status dhcpd.service
dhcpd.service - DHCPv4 Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled)
   Active: active (running) since 금 2013-11-01 04:38:26 KST; 4s ago
     Docs: man:dhcpd(8)
           man:dhcpd.conf(5)
 Main PID: 15967 (dhcpd)
   CGroup: name=systemd:/system/dhcpd.service
           └─15967 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid

11월 01 04:38:26 localhost.localdomain dhcpd[15967]: Copyright 2004-2013 Internet Systems Consortium.
11월 01 04:38:26 localhost.localdomain dhcpd[15967]: All rights reserved.
11월 01 04:38:26 localhost.localdomain dhcpd[15967]: For info, please visit https://www.isc.org/software/dhcp/
11 월 01 04:38:26 localhost.localdomain dhcpd[15967]: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not spe...g file
11월 01 04:38:26 localhost.localdomain dhcpd[15967]: Wrote 0 deleted host decls to leases file.
11월 01 04:38:26 localhost.localdomain dhcpd[15967]: Wrote 0 new dynamic host decls to leases file.
11월 01 04:38:26 localhost.localdomain dhcpd[15967]: Wrote 5 leases to leases file.
11월 01 04:38:26 localhost.localdomain dhcpd[15967]: Listening on LPF/em1/00:1f:c6:06:6c:d2/192.168.1.0/24
11월 01 04:38:26 localhost.localdomain dhcpd[15967]: Sending on   LPF/em1/00:1f:c6:06:6c:d2/192.168.1.0/24

11월 01 04:38:26 localhost.localdomain dhcpd[15967]: Sending on   Socket/fallback/fallback-net
 


별다른 오류가 없다면 재시작도 된것입니다.

수고하셨습니다. 기본적인 서버셋팅은 모두 끝났습니다.


Posted by Elly Tran :) | 지창훈