Linux 검색 결과

55개 발견
  1. 미리보기
    2015.05.10 - mr.november11

    버추얼 박스 NIC bonding fail over 문제 해결 방법

  2. 미리보기
    2015.05.04 - mr.november11

    kdump 서비스 실행 실패 발생 시 조치법

  3. 미리보기
    2015.05.03 - mr.november11

    파일 시스템 관리 File System Structure and Maintenance

  4. 미리보기
    2015.05.03 - mr.november11

    Redhat 7.0 에서만 사용되는 특수 filesystem 경로 location

  5. 미리보기
    2015.05.03 - mr.november11

    /proc/ 가상 파일 시스템 공간 /PROC VIRTUAL FILE SYSTEM

  6. 미리보기
    2015.05.03 - mr.november11

    btrfs BTRFS 파일 시스템 생성

  7. 미리보기
    2015.05.03 - mr.november11

    NFS 네트워크 파일 시스템

  8. 미리보기
    2015.05.03 - mr.november11

    [rhel 7]rhel7 Linux 7 FTP vftpd 설명 및 구현 설정

버추얼 박스 NIC bonding fail over 문제 해결 방법


버추얼 박스에서 본딩구성을 했음에도 정상적으로 절체가 안 될 때 해결방법


virtual box내에서도 eth를 여러개 설정한 후 centos LINUX의 bonding 구성으로 이중화 상태를 구현할 수 있다.


설정 VM 환경은 eth1, eth2를 bonding 구성했으며, 외부 네트워크의 영향을 덜 받기 위해 호스트 네트워크로 설정했다.


일반적으로 알려진 boding 구성을 아래와 같이 진행했다.


/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

IPADDR=169.254.192.222

NETMASK=255.255.255.0

GATEWAY=169.254.192.1

ONBOOT=yes

BOOTPROTO=none

USERCTL=no

BONDING_OPTS="mode=1 miimon=100"


/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

 

/etc/sysconfig/network-scripts/ifcfg-eth2

DEVICE=eth2 

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no


service network restart로 이중화 후 bonding 구성까지 완료했다.


gateway로 ping을 실행한 후 VM상에서 master로 설정된 eth의 케이블 연결을 해제했다.


cat /proc/net/bonding/bond0

Bonding Mode: fault-tolerance (active-backup)

Primary Slave: None

Currently Active Slave: eth2

MII Status: up

MII Polling Interval (ms): 1000

Up Delay (ms): 0

Down Delay (ms): 0


Slave Interface: eth1

MII Status: down

Link Failure Count: 1

Permanent HW addr: 08:00:27:12:e1:91


Slave Interface: eth2

MII Status: up

Link Failure Count: 0

Permanent HW addr: 08:00:27:49:9b:91


위의 설정값과 같이 bond0의 acive link가 eth1->eth2로 절체되었다.


하지만 문제는 eth2로 절체된 순간 bond0의 네트워크가 단절되어 버린다... 설정값만 정상일뿐 실제 네트워크는 장애상태로 빠진다.


구글링으로 알아본 결과 bonding 설정에서의 추가 옵션을 설정해야했다.


fail_over_mac의 설정값을 1로 설정하면 문제가 해결된다.

BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"


fail_over_mac은 절체 발생 시 기존 active 상태였던 eth의 MAC address를 그대로 승계하도록 하는 옵션이다.
현업에서는 스위치의 learning 과정을 없애기 위해 fail over 발생 시 기존 active의 mac을 그대로 사용하도록 하고있다.
fail_over_mac 설정 값 없이도 정상적으로 이중화가 잘 되는데 .. 왜 버추얼 박스에서만 이런 문제가 발생하는지 잘 모르겠다.


아래는 HP의 관련 문서이다.

http://support.hp.com/th-en/document/c02695249

Red Hat Enterprise Linux - What is the fail_over_mac Bonding Option?

Information
In active backup bonding mode, the mac address of the bond interface is typically set to that of the first active slave interface. The bonding optionfail_over_mac can change this behavior. It is set in the BONDING_OPTS parameter in the file /etc/sysconfig/network-scripts/ifcfg-bondx file.
Details
The original default behavior is to set all slaves to the same mac address as that of the first active slave interface. But if the fail_over_mac is specified, it can be one of three settings: none which is the default setting "none", the other two are "active" or "follow".
none or 0:
This setting disables fail_over_mac, and causes bonding to set all slaves of an active-backup bond to the same MAC address at enslavement time. This is the default, and original behavior.
active or 1:
The "active" fail_over_mac policy indicates that the MAC address of the bond should always be the MAC address of the currently active slave. The MAC address of the slaves is not changed; instead, the MAC address of the bond changes during a failover.
This policy is useful for devices that cannot ever alter their MAC address, or for devices that refuse incoming broadcasts with their own source MAC (which interferes with the ARP monitor).
The down side of this policy is that every device on the network must be updated via gratuitous ARP, vs. just updating a switch or set of switches (which often takes place for any traffic, not just ARP traffic, if the switch snoops incoming traffic to update its tables) for the traditional method. If the gratuitous ARP is lost, communication may be disrupted.
When this policy is used in conjunction with the mii monitor, devices which assert link up prior to being able to actually transmit and receive are particularly susceptible to loss of the gratuitous ARP, and an appropriate updelay setting may be required.
An appropriate updelay setting may also be required if the switch has a forward delay period that might prevent the gratitous arp from being forwarded.
follow or 2:
The "follow" fail_over_mac policy causes the MAC address of the bond to be selected normally (normally the MAC address of the first slave added to the bond). However, the second and subsequent slaves are not set to this MAC address while they are in a backup role; a slave is programmed with the bond's MAC address at failover time (and the formerly active slave receives the newly active slave's MAC address).
This policy is useful for multiport devices that either become confused or incur a performance penalty when multiple ports are programmed with the same MAC address. Some switch security features such as the Cisco switch port security may have to configured so that the mac address moving to another port does not trigger a security lockout.

 

다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다

kdump 서비스 실행 실패 발생 시 조치법

2015. 5. 4. 15:49 - mr.november11

[rhel]kdump 서비스 실행 실패 발생 시 조치법


kdump 초기 설치 후 /boot/grub/grub.conf 파일에 추가 세팅이 필요하다.


ketnel 구문에 crashkernel=auto nmi_watchdog=1 을 추가하면 된다.


[root@vRH6x Packages]# vim /boot/grub/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_vrh6x-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux (2.6.32-358.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/vg_vrh6x-lv_root rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=vg_vrh6x/lv_root SYSFONT=latarcyrheb-sun16 
crashkernel=auto nmi_watchdog=1 rd_LVM_LV=vg_vrh6x/lv_swap rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-358.el6.x86_64.img


그런데 추가했음에도 불구하고 service kdump start 를 했을때 [failed] 또는 [실패] 로 나타나는 경우가있다.


RHEL6 기준 메모리가 2GB 이하실 경우 crashkernel 값을 128M로 강제 세팅하면 된다.


crashkernel=128M


메모리가 2기가 이상일 경우 기존과 같이 auto 설정으로도 실행가능하다. 


grub.conf 설정 후 재부팅하여 


service kdump start를 하면 정상 실행된다. 


- 커널 파라미터 추가

/etc/sysctl.conf 파일 설정


kernel.sysrq = 1

kernel.nmi_watchdog = 1



- kdump 테스트

아래 커맨드 입력

echo c > /proc/sysrq-trigger"

다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다
[rhel 7 레드햇 리눅스 7.0 파일 시스템 관리 File System Structure and Maintenance]

df command는 현재 사용중인 파일 시스템의 사용율을 출력한다. 

df 커맨드의 default 용량 단위는 block이며, 관리자가 보기 편하게 하기 위해서는 df -h  옵션으로 출력하는 것을 권장한다. 

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                        12G  6.0G  4.6G  57% / /dev/sda1
   99M  9.1M   85M  10% /boot  
none 316M 0 316M 0% /dev/shm 
위의 출력 값에서 /dev/shm 영역은 시스템의 가상 메모리 파일 시스템을 의미한다. (swap 영역인가?)

du 명령어는 현재 sub directory 안 공간 사용량을 출력한다. 위와 마찬가지로 human-readable format으로 변환을 위해 -hs 옵션
du -hs 을 사용한다. 

GUI 환경의 경우 gnome-system-monitor의 Filesystem 탭을 참고하면 된다.

Directory 설명 
- /boot/ Directory는 부팅에 필요한 정적 파일을 보관한다. 예를 들어 리눅스 커널에 boot 폴더 안에 위치한다. 이 파일들은 부팅 하기 위해 필수이다. 절대로 삭제하거나 수정하면 안 된다. 
- /dev/ 디렉토리는 시스템에 연결되 device에 대한 노드를 보관한다. udevd 데몬에 의해 관리된다. 
/dev/ 폴더 안 디바에스 네이밍 
FileDescription
/dev/hdaThe master device on the primary IDE channel.
/dev/hdbThe slave device on the primary IDE channel.
/dev/tty0The first virtual console.
/dev/tty1The second virtual console.
/dev/sdaThe first device on the primary SCSI or SATA channel.
/dev/lp0The first parallel port.
A mapped device
VG 볼륨 그룹 안 논리적 볼륨들은 /dev/mapper/ 폴더 안에 기록된다.
A logical volume in a volume group, for example, /dev/mapper/VolGroup00-LogVol02.

A static device
    일반적인 스토리지 디바이스는 /dev/sdbX 으로 네이밍된다. /dev/sda, /dev/sdb

A traditional storage volume, for example, /dev/sdbX, where sdb is a storage device name and X is the partition number./dev/sdbX can also be /dev/disk/by-id/WWID, (see Section 26.3.1, “WWID” for more information) or /dev/disk/by-uuid/UUID, (see Section 26.3.2, “UUID and Other Persistent Identifiers” for more information). 

- /etc/ 디렉토리에는 시스템 설정 값을 저장한다. 
​- /media/ 디렉토리는 이동식 저장매체(usb, dvd, cd-rom)에 대한 마운트 포인트로 사용된다. 
/mnt/ 디렉토리는 NFS와 같은 임시 파일 시스템을 위해 사용된다. 이동식 미디어의 마운트는 /media/에 해라. 자동적으로 /media/에 된다.

/opt/ 디렉토리는 소프트웨어나 add-on 패키지를 위해 사용된다. 
/sys/ 디렉토리는 가상 파일 시스템에 사용됨
/usr/ 디렉토리는 유저간 공유 가능한 영역 이다. 
/var/ 디렉토리에는 다양한 데이터들이 존재한다. spool directories, logging data, trasient , temp file
system message나 lastlog 는 /var/log파일 안에 있다. 


다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다
[rhel 7 레드햇 리눅스 7.0 Redhat에서만 사용되는 특수 filesystem 경로 location]

레드햇에만 특별히 사용되는 경로 
- /var/lib/rpm : 대부분의 rpm 파일들이 존재하는 공간 
- /var/cache/yum : Package Updater를 위해 사용된다. 
- /etc/sysconfig/ : 다양한 시스템 설정값을 저장하는 공간, 부팅 시 해당 폴더 내에 있는 스크립트들이 다수 실행된다. 
 /etc/sysconfig/ 폴더는 관리 시 매우 중요하다. 


다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다
[rhel 7 레드햇 리눅스 7.0 /proc/ 가상 파일 시스템 공간 /PROC VIRTUAL FILE SYSTEM]

대부분의 파일 시스템과는 다르게, /proc 폴더는 텍스트, 바이너리 파일을 저장하지 않는다. 대신에 해당 폴더에는 가상 virtual 파일들을 보관한다. 그래서 /proc 는 일반적으로 가상 파일 시스템으로 언급된다. 이러한 가상 파일들은 매우 큰 데이터라 하더라도  0 bytes의 크기를 가진다. 

/proc 디렉토리는 저장용으로 사용되지 않는다. 이 폴더의 주된 목적은 하드웨어, 메모리, 실행중 프로세스 등에 파일 기반 인터페이스를 제공해주기 위함이다. 실시간 정보는 검색된다 많은 시스템들에 의해 검색될 수 있다. 그 중 의 일부는 커널의 실행을 위해서 실행될 수 있다. 

 /proc 파일들은 시스템 스토리지는 관리하고 모니터링 하는데 사용된다. 
/proc/devices
Displays various character and block devices that are currently configured.
/proc/filesystems
Lists all file system types currently supported by the kernel.
/proc/mdstat
Contains current information on multiple-disk or RAID configurations on the system, if they exist.
/proc/mounts
Lists all mounts currently used by the system.
/proc/partitions
Contains partition block allocation information.


다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다

btrfs BTRFS 파일 시스템 생성

2015. 5. 3. 00:20 - mr.november11
[rhel 7]rhel 7 레드햇 리눅스 7.0 btrfs BTRFS 파일 시스템 생성]

BTRFS 는 차세대 리눅스 파일 시스템이다. 
관리, 신뢰성, 확장성 측면에서 기존의 파일 시스템보다 개선된 특징을 가진다 .

btrfs 시스템은 mkfs.btrfs 커맨드를 통해 실행한다. 
# mkfs.btrfs /dev/device
mkfs 커맨드를 통해 해당 파일 시스템을 생성한 이후에 기존 파일 시스템과 같이 mount 커맨드로 마운트 시킨다. 
# mount /dev/device /mount-point
btrfs 파일 시스템 용량 늘리기 

# btrfs filesystem resize amount /mount-point
The amount can be a set size, such as "+2g" for an increase in 2 GiB, or it can be "max" to grow the file system to fill the whole block device. ( +2g, +2G 와 같이 대소문자 구별을 하지 않는다. )
btrfs 파일 시스템 용량 줄이기 
# btrfs filesystem resize amount /mount-point
Set the amount to the required size to shrink by, such as "-2g" for a decrease of 2 GiB.
btrfs 파일 시스템의 크기를 +, -  뿐만 아니라 특정 크길 지정할 수도 있다. 
#btrfs filesystem resize amount /mount-point
Set the amount to the required size of the file system, such as "20g" to make the file system 20 GiB.
amount 값 지정에 따라 확장, 축소, 용량 지정이 설정된다. 


다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다

NFS 네트워크 파일 시스템

2015. 5. 3. 00:19 - mr.november11
[[rhel 7]rhel 7 레드햇 리눅스 7.0 NFS 네트워크 파일 시스템]

리눅스 7.0 버전 부터는 NFSv4.1이 추가되었다. NFSv4.1에서는 보안강화, 클라이언트 pNFS가 추가 되었다. 
NFSv4.1에서는 콜백을 위한 TCP 연결 분할을 필요로 하지 않는다. 
Red Hat 리눅스 7.0 버전에서는 default로 NFSv4.0을 지원하며, 마운트가 정상 실행되지 않을 시 NFSv3으로 fall back한다. 
모든 버전의 NFS는 TCP 프로토콜을 사용한다. NFSv3의 경우 UDP를 사용하기도 한다. 
NFS는 TCP port 2049를 사용한다. NFS의 정상 동작의 위해서 iptables(방화벽) 설정을 미리 해야한다. 
NFS는 RPC  통신을 통해 서버와 클라이언트 간 통신을 진행한다. 리눅스 7.0 에서는 rpcbind로 이를 관리한다. 이전 버전에서는 portmap으로 관리함 
NFS 마운트는 기존와 같다 
mount -t nfs -o [options] host:/remote/export /local/directory
/etc/fstab에는 아래와 같이 등록한다
server:/usr/local/pub /pub nfs defaults 0 0


다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다

FTP(File Transfer Protocol)는 가장 오래되면서 가장 공통으로 사용되고 있는 프로토콜이다.
FTP는 외부에서 컴퓨터간 신뢰성 있는 파일전송을 지원한다.
Linux에서 가장 대표적으로 사용되는 FTP는 vsftpd 데몬이다.
rhel 7.0에서도 이전 버전과 마찬가지로 vsftpd를 사용한다.

FTP는 TCP 프로코톨 위에서 동작한다. TCP는 오래된 프로토콜로 암호화되지 않기 때문에 보안성은 취약하다.

FTP는 멀티 네트워크 포트를 사용한다. 이는 초기에 21번 포트를 사용해서 서버를 연다. 일반적으로 알려진 FTP포트가 21번이다.

서버로부터의 데이타는 별도의 data 포트를 통해 클라이언트로 전달된다. 이 포트의 번호는 passive mode, active mode에 따라 달라진다.

Active mode vs Passive mode



Active mode
Active 모드에서 클라이언트는 21번 포트를 사용해 서버와의 연결을 초기화 한 후 클라이언트에서 data용으로 사용할 port를 서버에 전달한다.

이후 서버의 20번 포트는 클라이언트에서 받은 data 포트로 데이터를 전달하고, 전달 완료 후 클라이언트는 ack로 서버의 20번 포트에 응답한다.

클라이언트에서 방화벽 등으로 port가 막혀있을 시 서버에서 클라이언트 port로 파일을 전달하지 못한다.

-> Command 포트는 클라이언트 -> 서버로 접속, Data 포트는 서버 -> 클라이언트로 접속하는 형태


Passive mode
Passive mode는 Active 모드와 같이 초기 21번 포트를 사용하여 클라이언트 -> 서버로 접속한 후 서버에서 data용으로 사용할 포트 번호를 전달 받는다.
클라이언트는 이후 전달 받은 data 포트로 2차 접속을 시도한다.
Passive mode에서는 클라이언트로의 접속 문제를 해결했다. 하지만 서버의 1024~65535 포트를 방화벽에서 다 열어야 하는 문제점이 있었다.( 서버의 data용 port 후보군)

아래는 Redhat 공식 문서의 active vs passive 비교 설명

active mode
Active mode is the original method used by the FTP protocol for transferring data to the client application. When an active-mode data transfer is initiated by the FTP client, the server opens a connection from port 20 on the server to the IP address and a random, unprivileged port (greater than 1024) specified by the client. This arrangement means that the client machine must be allowed to accept connections over any port above 1024. With the growth of insecure networks, such as the Internet, the use of firewalls for protecting client machines is now prevalent. Because these client-side firewalls often deny incoming connections from active-mode FTP servers, passive mode was devised.

passive mode
Passive mode, like active mode, is initiated by the FTP client application. When requesting data from the server, the FTP client indicates it wants to access the data in passive mode and the server provides the IP address and a random, unprivileged port (greater than 1024) on the server. The client then connects to that port on the server to download the requested information.
While passive mode does resolve issues for client-side firewall interference with data connections, it can complicate administration of the server-side firewall. You can reduce the number of open ports on a server by limiting the range of unprivileged ports on the FTP server. This also simplifies the process of configuring firewall rules for the server.

다른 카테고리의 글 목록

Linux 카테고리의 포스트를 톺아봅니다