RPM 기반의 패키지 관리 프로그램으로 RPM 패키지의 설치/삭제/업데이트에 대한 어려움을 해결해주는 도구입니다.

RPM을 통한 패키지 설치 시 의존성에 대한 부분을 알아서 처리한다는게.. 제일 큰 이점이라고 생각합니다^^


yum에 대한 사용법은 넘기고 yum repository 서버 구성 !


# yum install createrepo : repo 저장소 만드는 패키지 설치

# createrepo [옵션] [디렉토리]

repomd.xml 파일과 gz 압축파일 생성

yum 2.1 이상 부터는 gz 파일을 참조

[root@Centos1 repodata]# ls

filelists.xml.gz  other.xml.gz  primary.xml.gz  repomd.xml






Posted by 뭉탁거림
,

df를 통해 mount 된 정보를 살펴보다 tmpfs라는 파일시스템으로 /dev/shm에 mount 되어 있는 것이 궁금하여 이것저것 모아 정리


Filesystem    Type    Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root

                    ext4     18G  3.1G   14G  19% /

tmpfs        tmpfs    1.9G     0  1.9G   0% /dev/shm

/dev/xvda1    ext4    485M   52M  408M  12% /boot

tmpfs        tmpfs     20G     0   20G   0% /var/tmp


리눅스에서는 tmpfs라는 파일시스템으로 


또한 /etc/fstab파일을 보면 mount 정보를 확인할수 있는데...

 

tmpfs         /dev/shm      tmpfs     defaults             0 0


 

메모리파일시스템인 tmpfs로 /dev/shm 마운트가 되어 있음을 확인할수 있다 

 

옵션은 defaults로 되어 있는데 만일 크기를 변경하고자 하는 경우 defaults대신 size=24G로 넣으면 된다

 

defaults옵션은 크기는 현재 시스템 메모리의 0.5배만큼 잡는것을 기본!

 


명령행으로는

 

mount -t tmpfs tmpfs /mount_point -o size=1500M

 


Posted by 뭉탁거림
,

1. 802.1q VLAN tagging by loading 8021q Linux kernel driver

# lsmod | grep 8021q

만약 해당 모듈이 로드되지 않았다면 

#modprobe 8021q

2. CentOS/RHLE/Fedora Linux VLAN 설정 방법

# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.5
기존 eth0 파일을 복사 


  • eth0 - Your regular network interface
  • eth0.5 - Your virtual interface that use untagged frames

3. VLAN tag 네트워크 인터페이스 생성(ex VLAN ID 5)
 vi /etc/sysconfig/network-scripts/ifcfg-eth0.5

DEVICE=eth0.5

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.1.5

NETMASK=255.255.255.0

USERCTL=no

NETWORK=192.168.1.0

VLAN=yes


 vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

BOOTPROTO=none

ONBOOT=yes


3. Network Service 재시작

# service network restart


4. VLAN Interface 확인

# cat /proc/net/vlan/eth0.5

Posted by 뭉탁거림
,

스위치를 물리적  배치를 통한 LAN 구성의 한계를 넘어서 논리적으로 LAN을 구성할수 있는 기술이다.

1. 네트워크를 나누므로써 보안상의 문제를 해결

2. 추가 LAN 구성을 장비의 추가 없이 구축가능

3. 관리자의 네트워크 작업이 용이

4. 각기 다른 VLAN은 브로드케스팅 패킷을 버리고 전송하지 않으므로 트래픽을 분리하고 불필요한 트래픽을 줄일수 있다

요약하자만 4가지의 장점이 있는 것으로 보입니다.


Trunking(트렁킹)

다른 VLAN이 통신 할수 있는  라인으로 VLAN 이 N개 일때 스위치간 링크는 N개여야합니다. Trunking 은 VLAN 이 N개 여도 하나의 통합 링크를 통해서 패킷을 보내는 방식입니다. 하나의 통합 링크를 통해 보내므로 각 패킷이 포함된 VLAN 정보를 알수 없습니다. 그래서 패킷에 자신의 VLAN 정보를 넣어 보내는 방식을 사용합니다. 이렇게 자신의 VLAN 정보를 붙여 보내는것을 Tagging 이라고 합니다.


여러 대의 스위치가 서로 연결되어 있는 네트워크에서 VLAN을 사용할 때 스위치는 서로 VLAN 정보를 주고 받아야합니다. 스위치간 연결된 포트간 세크먼트를 VLAN Trunking을 사용하여 해결합니다. VLAN Trunking이 만들어지면 스위치는 VLAN Tagging 이라는 과정을 이용하여 VLAN 정보를 교환합니다.

즉, 다시말해 스위치하나가 아닌 서로 다른 스위치의 장비를 같은 VLAN 으로 묶고 싶을 때 VLAN 정보를 스위치간에 공유해야되는데 이 VLAN 정보를 공유하는 것이 Trunking 이고 Tagging 이란 과정을 이용해 교환하는 규칙이 VTP(VLAN Trunking Protocol) 입니다.

만일 Trunking 이 지원되지 않는다면 스위치에 만들어진 VLAN의 개수만큼 스위치끼리 링크가 필요할 것입니다.

Tagging

VLAN ID는 트렁킹 프로토콜에서 VLAN을 구분하는 용도로 사용합니다. 이렇게 VLAN에 ID를 붙여서 구분하는 방법을 프레임 태깅(Frame Tagging) 이라고 합니다. ethernet 에서 사용하는 가장 대표적인 프레임 태깅 기술은 다음과 같습니다.

즉, 패킷에 VLAN ID를 붙여 이 패킷이 어떤 VLAN 에 포함되있는지 구분하여 받을지 말지를 결정하는 역활을 합니다.
예를들어 2개의 스위치가 있고 1번 스위치의 VLAN 10번의 장비가 2번 스위치의 VLAN 10번에게 패킷을 보낼때 1번 스위치의 장비는 패킷에 VLAN 10 번 이라는 Tag를 달아 2번 스위치에게 보내주게 됩니다. 2번 스위치는 이를 받아 풀어보면(untag) 이 패킷이 VLAN 10번에서온 패킷이라는 것을 알고 자신의 VLAN 10에 포함된 장비에게 이 패킷을 보냅니다. 다른 VLAN 에게는 이 패킷을 보내지 않습니다. Tag는 패킷이 어떤 VLAN에서 보내졌는지 알기위한 수단으로 사용합니다.

[출처] http://onecellboy.tistory.com/278



'Study' 카테고리의 다른 글

spring boot 시작  (0) 2016.05.26
Validation / verification  (0) 2015.02.05
Network Strorage(DAS/NAS/SAN)  (1) 2014.04.02
Posted by 뭉탁거림
,

윈도우 OS와는 달리 리눅스에는 장치를 사용하기위해선 각 장치를 컨트롤 할수 있는 "파일" 즉 장치파일이 반드시 있어야 됩니다.

SCIS의 경우 /dev/sda, /dev/sdb 이런식으로 장치명을 사용하죠?

대부분의 장치파일의 경우 설치 과정에서 파일이 생성되고 사용되기는 하지만... 

직접 mknod라는 명령어를 통해 장치파일을 생성하는 경우가 생기곤 합니다.


mknod의 타입


p = FIFO파일

b = Block특수파일

c,u = Character특수파일

장치파일에는 주번호(Major Number)와 부번호(Minor Numver)가 필요


형식 : mknod 옵션 장치명 타입 주번호 부번호

여기서 주번호 부번호를 사용하는 이유는 0부터 255까지 부번호 역시 0부터 255까지인데.. 주번호만 사용하게 되면 리눅스에서 사용하는 장치의 개수가 256개밖에 안되죠.. 그래서 동일하거나 비슷한 장치에는 동일한 주번호를 주고 거기서 부번호로 장치를 나누게 됩니다.

# mknod /dev/dm-0 b 3 10 

'리눅스-Linux' 카테고리의 다른 글

[리눅스] 리눅스 램디스크 tmpfs  (0) 2014.03.12
[Linux] 리눅스 VLAN config 설정  (0) 2014.03.11
[Linux] 리눅스 bonding mode  (0) 2014.03.06
[Linux] dmsetup 와 dm-x 장치  (0) 2014.02.27
[Linux] dumpe2fs, tune2fs, fsck  (0) 2014.02.27
Posted by 뭉탁거림
,

NIC Bonding mode에 대한 정리

주로 1번(Active-stanby) 또는 스위치 LACP를 구성해서 4번(Active-Active)을 사용하죠..?

참고자료...

mode명칭설명
0balance-rr・ load balancing (round-robin)
・모든 슬레이브 장치(NIC)를 차례(라운드로빈)로 사용 패킷을 보냅니다.
・ 전송만 부하분산 (로드밸런싱) 
・ 디폴트값입니다.
1active-backup・ fault-tolerance (active-backup)
・ 하나의 NIC만  활성화 인터페이스로 보냅니다.
・ 송수신 둘다 부하 분산이 없습니다.
・ 평상시에는 하나의 NIC으로만 통신하여 통신장애가 발생하면 전환모드입니다.
2balance-xor・ load balancing (xor)
・ 송신원/대상의 MAC어드레스를 바탕으로 전송 슬레이브 디바이스를 결정해 패킷을 보냅니다.
・ 송신패킷만 부하분산(로드밸런싱)
3broadcast・ fault-tolerance (broadcast)
・ 모든 슬레이브에 동일한 패킷을 보냅니다.
・ 일반 용도로는 사용하지 않음.
4802.3ad・ IEEE 802.3ad Dynamic link aggregation
・ IEEE 802.3ad(LACP)을 기준한 링크 어그리게이션(Link aggregation:여러개의 물리적인 회선을 가상적으로 묶어 마치 하나의 회선인것처럼 처리하는 기술로 예를 들어 1Gbps회선 5개를 가상으로 묶어 5Gbps의 가상 통신대역을 사용할수 있습니다.)
・ 연결하는 스위치가 IEEE 802.3ad에 대응할 필요가 있습니다.
5balance-tlb・ transmit load balancing
・ 각 슬레이브의 부하에 따라 전송 슬레이브를 분산합니다. 수신은 현재 슬레이브에 의해 행해집니다.
・ 송신패킷만 부하분산(로드밸런싱)
6balance-alb・ adaptive load balancing
・ balance-tlb의 기능뿐만 아니라 송수신도 부하분산 (로드밸런싱)


Posted by 뭉탁거림
,

fdisk -l 통해 리눅스에 달려있는 볼륨 정보를 볼때마다 dm-x 라는 볼륨에대해 궁금한 점이 있었습니다.

multipath나 LVM으로 구성할 경우 dm-x 장치가 생성되는 것 같은데....

이것의 실체는 .......... dm-x device에 xvda,xvdb 등 실제로 맵핑된다는 사실!

  

dmsetup 명령으로 /sys/block/dm-x/ 아래의 맵핑되어 있는 device 장치 정보를 확인 할 수 있다.

[[root@chefclient02 /sys/block/dm-0]$dmsetup info


Name:              VolGroup-lv_root

State:             ACTIVE

Read Ahead:        256

Tables present:    LIVE

Open count:        1

Event number:      0

Major, minor:      253, 0

Number of targets: 1

UUID: LVM-a8xHxzmvHshO0vh2Uozuk8ePQVZP5NpmFe9wj4KoHvIS4Lqd7ESljSAmpIBE8OWe


[root@chefclient02 /sys/block/dm-0/slaves]$ll

total 0

lrwxrwxrwx 1 root root 0 Feb 28 08:42 xvda2 -> ../../../../vbd-51712/block/xvda/xvda2

'리눅스-Linux' 카테고리의 다른 글

[리눅스] mknod를 이용한 장치 파일생성  (0) 2014.03.11
[Linux] 리눅스 bonding mode  (0) 2014.03.06
[Linux] dumpe2fs, tune2fs, fsck  (0) 2014.02.27
[Linux] yum repository 구성하기  (0) 2014.02.07
SSH 활용 sshpass  (0) 2014.02.06
Posted by 뭉탁거림
,

리눅스 파일시스템 check 및 수정/복구 관련 명령어


1. dumpe2fs : 파일시스템의 슈퍼블럭과 블럭그룹정보를 출력 

2. tune2fs : 파일시스템의 정보 확인 및 tunning

3. fsck : 파일 시스템 점검 및 복구

Maximum mount count / Check interval 항목이 유용하게 쓰임

tune2fs -c -1 /dev/xvdb1 : Maximum mount count 수를 -1 수정하여 자동으로 filesystem check가 되지 않도록 수정

tune2fs -i 0 /dev/xvdb1 : Check interval 기간을 0 으로 설정하여 마찬가지로 자동으로 filesystem check가 되지 않도록 수정

[root@localhost]$dumpe2fs /dev/xvdb1

dumpe2fs 1.41.12 (17-May-2010)

Filesystem volume name:   <none>

Last mounted on:          <not available>

Filesystem UUID:          09519598-5f70-4f75-9a1a-606ac27a9406

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file

Filesystem flags:         signed_directory_hash 

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              66384

Block count:              265064

Reserved block count:     13253

Free blocks:              252360

Free inodes:              66372

First block:              0

Block size:               4096

Fragment size:            4096

Reserved GDT blocks:      64

Blocks per group:         32768

Fragments per group:      32768

Inodes per group:         7376

Inode blocks per group:   461

Filesystem created:       Thu Feb 27 09:36:48 2014

Last mount time:          Thu Feb 27 09:38:59 2014

Last write time:          Thu Feb 27 09:38:59 2014

Mount count:              3

Maximum mount count:      26

Last checked:             Thu Feb 27 09:36:48 2014

Check interval:           15552000 (6 months)

Next check after:         Tue Aug 26 09:36:48 2014

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:          256

Required extra isize:     28

Desired extra isize:      28

Journal inode:            12

Default directory hash:   half_md4

Directory Hash Seed:      78b5adbc-9064-4627-ab0e-366cca41ad87

Journal features:         (none)

Journal size:             32M

Journal length:           8192

Journal sequence:         0x00000001

Journal start:            0




'리눅스-Linux' 카테고리의 다른 글

[Linux] 리눅스 bonding mode  (0) 2014.03.06
[Linux] dmsetup 와 dm-x 장치  (0) 2014.02.27
[Linux] yum repository 구성하기  (0) 2014.02.07
SSH 활용 sshpass  (0) 2014.02.06
[Linux] 파일입출력 정리 3 sed, awk  (0) 2014.01.24
Posted by 뭉탁거림
,

출처: http://luna1x.wordpress.com/tag/knife/

Chef 서버가 설치된 머신의 IP가 변경 되었을때 같이 변경해주어야 하는것

AWS에서 학습용으로 CentOS에 Chef서버를 설치한 후, 유지비가 아쉬어서 인스턴스를 꺼두었다가 다시 공부하기 위해 켰습니다. Chef서버가 설치된 인스턴스의 IP는 기존과 달라졌고, 기존에 잘 작동하던 Chef의 knife명령어가 작동을 하지 않게 되었습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@ip-172-31-21-96 chef-repo]# knife client list
ERROR: Server returned error for https://54.238.235.209/clients, retrying 1/5 in 3s
ERROR: Server returned error for https://54.238.235.209/clients, retrying 2/5 in 7s
ERROR: Server returned error for https://54.238.235.209/clients, retrying 3/5 in 11s
ERROR: Server returned error for https://54.238.235.209/clients, retrying 4/5 in 19s
ERROR: Server returned error for https://54.238.235.209/clients, retrying 5/5 in 63s
ERROR: bad gateway
Response: <html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.2.3</center>
</body>
</html>

몇시간의 삽질끝에 위 에러는 knife.rb를 수정하면서 해결했습니다.

  • $vi /root/chef-repo/.chef/knife.rb
  • chef_server_url  항목을 변경된 IP로 수정

그 후 테스트로 knife ec2 server create를 해보니 cookbook syncing 하는 단계에서 문제가 있내요.

1
2
3
4
5
6
7
8
9
10
11
12
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com Synchronizing Cookbooks:
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com ================================================================================
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com Error Syncing Cookbooks:
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com ================================================================================
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com Networking Error:
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com -----------------
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com
ec2-54-238-153-102.ap-northeast-1.compute.amazonaws.com Your chef_server_url may be misconfigured, or the network could be down.

결국 또 몇시간의 삽질끝에 chef-pedant와 erchef의 설정을 수정해서 해결했습니다.

  • $vi /var/opt/chef-server/chef-pedant/etc/pedant_config.rb
  • chef_server 항목을 변경된 IP로 수정
  • $vi /var/opt/chef-server/erchef/etc/app.config
  • {s3_url, 항목을 변경된 IP로 수정
  • $chef-server-ctl restart

결론은 Chef서버 IP가 바뀌면 이것저것 귀찮게 수정해줘야 하는게 있으니 되도록 Chef서버 IP는 바꾸지 맙시다. ㅜㅜ

————————————————내용추가————————————————

결론을 위와 같이 내리려다가 연습용 인스턴스를 계속 켜두기에는 돈이 아까워서, 서버가 실행될때 현재IP로 위 내용을 수정하는 스크립트를 만들었습니다.


결론을 위와 같이 내리려다가 연습용 인스턴스를 계속 켜두기에는 돈이 아까워서, 서버가 실행될때 현재IP로 위 내용을 수정하는 스크립트를 만들었습니다.

startup.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/sh
 
knife_replacefrom="chef_server_url.*"
knife_replaceto="chef_server_url ""\'https:\/\/"`hostname -f`":443\'"
sed -i "s/$knife_replacefrom/$knife_replaceto/g" /root/chef-repo/.chef/knife.rb
 
pedant_replacefrom="chef_server.*"
pedant_replaceto="chef_server ""\"https:\/\/"`hostname -f`"\""
sed -i "s/$pedant_replacefrom/$pedant_replaceto/g" /var/opt/chef-server/chef-pedant/etc/pedant_config.rb
 
erchef_replacefrom="{s3_url,.*"
erchef_replaceto="{s3_url, ""\"https:\/\/"`hostname -f`"\"},"
sed -i "s/$erchef_replacefrom/$erchef_replaceto/g" /var/opt/chef-server/erchef/etc/app.config
 
/opt/chef-server/bin/chef-server-ctl restart

startup.sh를 실행하도록 /etc/rc.local을 수정해주세요.

ps : AWS에서 Chef 서버는 최소 m1.small이상에서 돌려 주세요. t1.micro는 사양 문제로 알수없는 오류가 많이 납니다.


'나만의 Cloud' 카테고리의 다른 글

[chef] chef 참고자료  (0) 2014.04.28
[git] git란?  (0) 2014.04.23
[chef] knife를 이용한 ssh 명령어 내리기  (0) 2014.02.04
[Razor] puppetlabs razor provisioning  (0) 2013.12.23
[펌]CloudStack 시스템 VM  (0) 2013.10.24
Posted by 뭉탁거림
,

Yum repository 서버를 구성하는 방법

 

1. 구성방법

1) yum server에 계정을 생성 후 Home Directory에 필요한 rpm File을 복사

2) yum server는 Local로 Yum Repository를 구성

3) yum repository의 Client는 Server에 Anonymous FTP를 통해 해당 RPM 파일을 가져오는 구조


2. 작업 절차


(1) group, user 생성

groupadd -g 501 yumFile

useradd -g 501 -u 501 -d /home/yumFile yumFile

chwon root:root /home/yumFile

chmod 755 /home/yumFile

user의 Home Directory의 소유자와 그룹을 변경

(user의 Default 소유자와 그룹으로 두면 아래와 같은 오류가 뜨므로 root/root로 변경합니다.

500 OOPS: vsftpd: refusing to run with writable anonymous root)


(2) rpm File Copy

cd /mnt/Package

cp -r * /home/yumFile

cp -r repodata/ /home/yumfile/

 

필요한 rpm 파일을 yumfile User의 Home Directory로 복사

 

(3) 로컬 Yum Repository 구성

[root@localhost ~]# cd /etc/yum.repos.d/


yum.repos.d 디렉토리에 local.repo 추가

 

local.repo 내용

[local]

name=local

baseurl=file:///home/yumfile

enabled=1

gpgcheck=0

 

/home/yumfile 폴더를 기본 폴더로 설정하며 사용할 수 있도록 설정해 줍니다.

 

yum 초기화

[root@localhost yum.repos.d]# yum clean all

Loaded plugins: rhnplugin, security

Cleaning up Everything

[root@localhost yum.repos.d]# yum list

[root@localhost yum.repos.d]# yum repolist


yum.repos.d 디렉토리에 추가한 repository 목록 나옴



(4) FTP 설정

1) vsftp 설치

yum -y install vsftpd

 

2) chkconfig 수정

vsftpd 데몬 활성화를 위한 chkconfig를 수정

[root@localhost yum.repos.d]# chkconfig vsftpd on

 

3) vsftp configuration 수정

anonymous Ftp가 가능하도록 홈디렉토리를 수정

 

anonymous_enable=YES

ftp_username=yumfile

anonymous_enable : anonymous FTP가 가능 유무 설정

ftp_username : ftp가 사용할 default user를 설정합니다.

                      (Anonymous 붙을때 Default 사양하는 유저를 의미합니다.)

 

vsftpd 서비스를 기동합니다.

[root@localhost yum.repos.d]# service vsftpd start

vsftpd에 대한 vsftpd을 시작 중:                            [  OK  ]

 

4) 방화벽 open

/etc/sysconfig/iptables에 20번과 21번의 tcp port를 열어줍니다.

(아래 내용 추가)

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

 

방화벽 내용 저장

[root@Linux2 yum.repos.d]# service iptables save

방화벽 규칙을 /etc/sysconfig/iptables에 저장 중:           [  OK  ]

 

방화벽 서비스를 재기동 합니다.

service iptables restart

 

5) Anonymous FTP 연결 테스트

[root@Linux2 var]# ftp 192.168.2.130

Connected to 192.168.2.130.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (192.168.2.130:root): anonymous

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

5) Client의 Yum Repository 구성

[ftp]

name=ftp

baseurl=ftp://192.168.2.130

enabled=1

gpgcheck=0

 

c참고 <http://rockball.tistory.com/156>

 

'리눅스-Linux' 카테고리의 다른 글

[Linux] dmsetup 와 dm-x 장치  (0) 2014.02.27
[Linux] dumpe2fs, tune2fs, fsck  (0) 2014.02.27
SSH 활용 sshpass  (0) 2014.02.06
[Linux] 파일입출력 정리 3 sed, awk  (0) 2014.01.24
[Linux] 파일입출력 정리 2 (sort)  (0) 2014.01.24
Posted by 뭉탁거림
,