ElasticSearch Version check

  • 6.8

 

Download logstash pkg

Link

Install Command

  • wget https://artifacts.elastic.co/downloads/logstash/logstash-6.8.0.rpm
  • sudo yum install logstash-6.8.0.rpm

Install amazon_es plugin for logstash

  • /usr/share/logstash/bin/logstash-plugin list logstash-output

IF 'amazon_es' not exist, install amazone_es for logstash output

  • sudo /usr/share/logstash/bin/logstash-plugin install logstash-output-amazon_es
반응형

'Infra' 카테고리의 다른 글

AWS의 Cloudwatch와 CloudTrail의 차이  (485) 2020.06.01
Route53 DNS health check (for Nginx)  (302) 2019.12.20
EC2 instance prevent termination (KR)  (738) 2019.07.26
EC2 instance Change Source Dest Check 옵션  (612) 2019.06.28
[EC2] EBS 볼륨 추가하기  (13) 2018.08.16

감사(audit)에서 access control을 하는데 

centos 각 서버의 계정에 대해서 이를 관리하는것이 너무 불편한다.

Kerberos를 도입한다.

도입했던 이력을 아래에 정리한다.

 

목차

  • kerberos server
  • kerberos client
  • macos

Kerberos Server

Install

1. 작업 환경

$ cat /etc/system-release
Amazon Linux release 2 (Karoo)

2. 설치한 패키지 목록

  • krb5 관련
  • ntp
$ sudo yum list installed | grep krb
krb5-devel.x86_64                     1.15.1-19.amzn2.0.3            @amzn2-core
krb5-libs.x86_64                      1.15.1-19.amzn2.0.3            @amzn2-core
krb5-server.x86_64                    1.15.1-19.amzn2.0.3            @amzn2-core
krb5-workstation.x86_64               1.15.1-19.amzn2.0.3            @amzn2-core
pam_krb5.x86_64                       2.4.8-6.amzn2.0.2              @amzn2-core

$ sudo yum list installed | grep ntp
fontpackages-filesystem.noarch        1.44-8.amzn2                   @amzn2-core

참고링크

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/managing_smart_cards/installing-kerberos

https://gist.github.com/ashrithr/4767927948eca70845db

 

설정

1. EC2 인스턴스 2대 생성

- master, slave로 HA 구성했다.

 

2. DNS 설정

Route 53에 2개의 도메인을 추가했다. (abcdef.com은 실제 도메인이름으로 바꿔야함

- kdc.abcdef.com

- kdc2.abcdef.com

 

 

설정파일

 

1. /etc/krb5.conf 설정

- realm에 세팅할 도메인은 '대문자'로 해야한다.

$ cat /etc/krb5.conf
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/

[logging]
 kdc = FILE:/var/log/kerberos/krb5kdc.log
 admin_server = FILE:/var/log/kerberos/kadmin.log
 default = FILE:/var/log/kerberos/krb5lib.log

[libdefaults]
 default_realm = ABCDEF.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 rdns = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 ABCDEF.COM = {
  kdc = kdc.abcdef.com:88
  kdc = kdc2.abcdef.com:88
  admin_server = kdc.abcdef.com:749
  default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 aes128-cts-hmac-sha256-128 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4
  default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 aes128-cts-hmac-sha256-128 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4
  permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha384-192 aes128-cts-hmac-sha256-128 des3-cbc-sha1 arcfour-hmac-md5 camellia256-cts-cmac camellia128-cts-cmac des-cbc-crc des-cbc-md5 des-cbc-md4
 }

[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM   

 

 

2. /var/kerberos/krb5kdc/kdc.conf 설정

[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 ABCDEF.COM = {
  kadmind_port = 749
  max_life = 9h 0m 0s
  max_renewable_life = 7d 0h 0m 0s
  master_key_type = des3-hmac-sha1
  supported_enctypes = aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal des3-cbc-sha1:normal arcfour-hmac-md5:normal
  database_name = /var/kerberos/krb5kdc/principal
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /var/kerberos/krb5kdc/kadm5.dict
  key_stash_file = /var/kerberos/krb5kdc/.k5.ABCDEF.COM
 }

 

 

3. /var/kerberos/krb5kdc/kadm5.acl 설정

*/admin@ABCDEF.COM  *

 

나머지 세팅

 

1. KDC database 생성

kdb5_util create -r ABCDEF.COM -s

 

 

2. KDC admin 생성

# kadmin.local
kadmin.local:  addprinc account/admin@ABCDEF.COM
     
NOTICE: no policy specified for "admin/admin@ABCDEF.COM";
assigning "default".

Enter password for principal admin/admin@ATHENA.MIT.EDU:  (Enter a password.)
Re-enter password for principal admin/admin@ATHENA.MIT.EDU: (Type it again.)

Principal "admin/admin@ABCDEF.COM" created.
 
kadmin.local:

 

 

3. KDC database 백업 (링크에 복구 방법도 있음)

#!/bin/bash

/usr/sbin/kdb5_util dump /var/kerberos/slave_datatrans


/usr/sbin/kprop -f /var/kerberos/slave_datatrans mgmt-krb-kdc02.abcdef.com > /dev/null
  • 참고로 전달할 도메인 정보는 /etc/hosts에 있다.
% cat /etc/hosts

... 
10.100.125.156     mgmt-krb-kdc02.abcdef.com mgmt-krb-kdc02

 

4. 데몬 설정

systemctl start krb5kdc.service
systemctl start kadmin.service
systemctl enable krb5kdc.service
systemctl enable kadmin.service

 

Kerberos Client

Install

yum --disablerepo=*  --enablerepo=base,update install -y dmidecode krb5-libs

설정

참고로 ec2 1대에 nginx를 두고 스크립트를 불러다가 client로 동작할 서버에 세팅을 한다. 
대략 이런 명령을 이용함
curl -s krb5-client.abcdef.com/seeds/krb-svr-config | /bin/bash

위의 ec2에 flask로 간단하게 구현한 api 서버를 두고 잡다한(계정 추가, 변경, 삭제, ...) 처리를한다.

파일설정

1. /etc/hosts 설정 

  • 필요에 따라서 설정한다.

2. /etc/ssh/sshd_config 설정

  • 필요에 따라서 설정한다.

3. ntp update 수행

ntpdate -u pool.ntp.org

4. kadmin에서 신규 서버 principal 등록, keytab 생성

# addpric
/usr/bin/kadmin -p account/admin -w RkaWkrdldi -q "addprinc -randkey host/dev1-api-all.abcdef.com"

# ktadd
/usr/bin/kadmin -p account/admin -w RkaWkrdldi -q ktadd -k "/home/ec2-user/seeds/keytabs/dev1-api-all.abcdef.com host/dev1-api-all.abcdef.com"

# chmod
chmod og+r /home/ec2-user/seeds/keytabs/dev1-api-all.abcdef.com

5. kdc hosts 파일에 등록

cat /home/ec2-user/seeds/hosts

10.100.56.52      dev1-api-lucky21.abcdef.com       dev1-api-lucky201              
10.100.56.51      dev1-api-lucky11.abcdef.com       dev1-api-lucky101              
10.100.56.50      dev1-api-lucky01.abcdef.com       dev1-api-lucky001              
10.100.56.21      dev1-api-point11.abcdef.com     dev1-api-point101                
10.100.56.22      dev1-api-point12.abcdef.com     dev1-api-point12                 
10.100.56.20      dev1-api-point01.abcdef.com     dev1-api-point001                
10.100.56.23      dev1-api-point21.abcdef.com     dev1-api-point201                
10.100.56.24      dev1-api-point22.abcdef.com     dev1-api-point22                 
10.100.0.162      dev1-proxy-out21.abcdef.com        dev1-proxy-out201             
10.100.0.161      dev1-proxy-out11.abcdef.com        dev1-proxy-out101    

6. 이번엔 4단계에서 생성했던 keytab 파일을 실제 kerberos client에 복사해둔다.

/etc/krb5.keytab

 

addprinc, ktadd 이렇게하고 생성한 keytab 파일을 kerberos client에 옮겨두어야 한다. 

그리고 그와 관련해서 hosts 파일도 갱신해야한다.

이를 좀 편리하게 하기 위해서 ec2에 nginx + gunicorn + flask로 구성한 api 서버를 두고 처리하고 있다.

 

MacOS 사용자 설정

내 pc에서 ssh로 접근할 때 사용할거라서 내거에도 설정해야한다.

 

1. /etc/krb5.conf 설정

[libdefaults]
default_realm = ABCDEF.COM
allow_weak_crypto = false
rdns = false

[realms]
ABCDEF.COM = {
kdc = kdc.abcdef.com
kdc = kdc2.abcdef.com
admin_server = kdc.abcdef.com
kpasswd_server = kdc.abcdef.com
}

 

2.  /etc/ssh/ssh_config 설정

  • 참고로 MacOS update 하고나면 이 설정이 원복 되기도 하므로 update 이후엔 확인 해보아야 한다.
GSSAPIAuthentication yes    => Allow authentication protocol for ssh kerberos support
StrictHostKeyChecking no     

3. MacOS의 터미널에 접속해서 kinit을 한다.

kinit --kdc-hostname=kdc.abcdef.com,kdc2.abcdef.com sfixer@ABCDEF.COM

그리고 나서 제대로 되는지 확인한다.

% ssh sfixer@10.100.125.143
% ssh sfixer@dev1-api-all
...
반응형

'기타' 카테고리의 다른 글

TCP 통계수치 변화 (장애 상황)  (1318) 2020.07.15
TCP 통계  (445) 2020.07.14
500 Error on Confluence Startup (KR)  (793) 2019.07.29
squid proxy  (8) 2018.12.19
reverse proxy 개념  (10) 2018.12.19

시작하려니 막막하다. 

샘플을 참고해서 원하는 기능을 추가해 나가야겠다.

 

Syntax

 

 

Sample codes

_

 

 

반응형

'Language > Flutter' 카테고리의 다른 글

flutter VS Code setting (MacOS)  (3322) 2019.08.09

flutter로 개발해나가는 것으로 결정하고 에디터를 설정

vim으로는 대책이 없어서 vscode를 사용함.

 

 

https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

VSCode 다운로드하고 flutter plugin을 설치

 

terminal에서 `flutter doctor` 명령어를 치거나  아래의 기능을 사용

SDK를 설치한다.

 

원하는 OS를 선택한다.

 

https://flutter.dev/docs/get-started/install/macos

 

MacOS install

 

flutter.dev

 

하나씩 따라가면서 설치한다.

 

 

 

flutter doctor의 결과 메시지를 읽고 그대로 설치해주면 된다.

 

전부 설정 완료

 

이후에는 터미널에서

`flutter create my_project`로 프로젝트를 생성하고

그 생성된 디렉토리안에서

`flutter run` 해주면 된다.

물론 android, ios 2개라서

`flutter run -d emulator-599055` 같이 device를 선택해주어야한다.

 

기본 동작 확인 완료.

반응형

'Language > Flutter' 카테고리의 다른 글

Flutter source code samples  (2946) 2019.08.16

기존에 AWS EC2의 m3.large에 jira, confluence를 설치형으로 운영하고 있었다.

(nginx, mysql도 같은 인스턴스에 설치하여 운용)

 

최근들어서 메모리 부족 이슈가 자꾸 발생한다.

  •  java.lang.OutOfMemoryError: Java heap space

일단은 스케줄 작업 시간을 분산해보았다.

confluence schedule job

 

몇일 괜찮더니 여전히 또 메모리 부족으로 confluence 접근이 안된다.

EC2 사양을 높이고 m3.large -> m3.xlarge로 (7.5G -> 15G) 메모리를 높였다.

 

메모리 사용하는 프로세스

  • java/confluence
  • java/jira
  • nginx
  • mysql

 

startup.sh 명령을 실행해서 띄웠다.

 

안되고 500 ERROR가 난다.

29-Jul-2019 01:51:06.145 SEVERE [http-nio-8090-exec-2] org.apache.catalina.core.StandardHostValve.custom Exception Processing ErrorPage[errorCode=500, location=/500page.jsp]

 com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NullPointerException

        at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:149)

        at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112)

        at com.atlassian.confluence.plugin.servlet.filter.ServletFilterModuleContainerFilter.getServletModuleManager(ServletFilterModuleContainerFilter.java:23)

        at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:68)

        at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at com.atlassian.confluence.web.filter.DebugFilter.doFilter(DebugFilter.java:50)

        at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)

        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:468)

        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)

        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)

        at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:439)

        at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:305)

        at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:399)

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)

        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)

        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)

        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)

        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)

        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

        at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.NullPointerException

        at com.atlassian.spring.container.ContainerManager.getComponent(ContainerManager.java:33)

        at com.atlassian.confluence.util.LazyComponentReference$Accessor.get(LazyComponentReference.java:46)

        at com.atlassian.util.concurrent.Lazy$Strong.create(Lazy.java:85)

        at com.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:321)

        at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:143)

        ... 29 more

 

아...... 일단 구글링

https://www.google.com/search?newwindow=1&ei=pFg-XcOuMpXMvwTrhKbABA&q=org.apache.catalina.core.StandardHostValve.custom+Exception+Processing+ErrorPage%5BerrorCode%3D500%2C+location%3D%2F500page.jsp%5D&oq=org.apache.catalina.core.StandardHostValve.custom+Exception+Processing+ErrorPage%5BerrorCode%3D500%2C+location%3D%2F500page.jsp%5D&gs_l=psy-ab.3...12614.12614..12886...0.0..0.0.0.......0....2j1..gws-wiz.Xc4qbAH0AaA&ved=0ahUKEwjDkOSgidnjAhUV5o8KHWuCCUgQ4dUDCAo&uact=5

 

org.apache.catalina.core.StandardHostValve.custom Exception Processing ErrorPage[errorCode=500, location=/500page.jsp] - Google

2013. 5. 24. · Well, we get a 500 error on the home page after starting up at least. The error we see in the ... StandardHostValve custom SEVERE: Exception Processing ErrorPage[errorCode=500, location=/500page.jsp] java.lang. NullPointerException at ... do

www.google.com

 

다행히 1번째 결과가 나의 상황과 유사하다.

링크를 열어보니 희망이 생긴다.

https://community.atlassian.com/t5/Confluence-questions/500-Error-on-Confluence-Startup/qaq-p/393445

 

500 Error on Confluence Startup

I am unable to start up our Confluence instance. Well, we get a 500 error on the home page after starting up at least. The error we see in the web page is: exception com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NullPointer

community.atlassian.com

 

링크의 댓글을 따라가본다. (That did it for me, thanks! 라고 한다. 이거 왠지 될거 같다.)

 

How to clear Confluence plugins cache - Atlassian Documentation

How to clear Confluence plugins cache

confluence.atlassian.com

왠지 느낌이 이거같다. 플러그인 캐쉬 문제

 

solution for this error

다 풀릴것 같은 문제가 <confluence-home>을 못찾고 또 지연된다.

결국 find로 뒤져보니 저 디렉토리가 똑같이 존재한다.

 

언급된 디렉토리를 삭제하진 않고 일단 mv 명령어로 다른 path로 옮기고

confluence를 재시작하였다.

 

시작하면서 저 디렉토리들을 새로 만든다.

그러다보니 기동하는데 오래걸린다.  (참고로 default 8090 port로 띄움)

 

띄우고나서 확인, 아까는 500 ERROR였는데 200 OK 뜬다. 

$ wget http://localhost:8090
--2019-07-29 04:19:04--  http://localhost:8090/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8090... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://localhost:8090/login.action?os_destination=%2Findex.action&permissionViolation=true [following]
--2019-07-29 04:19:04--  http://localhost:8090/login.action?os_destination=%2Findex.action&permissionViolation=true
Reusing existing connection to localhost:8090.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html

index.html                                     [ <=>                                                                                    ]  19.64K  --.-KB/s   in 0.002s 

2019-07-29 04:19:04 (11.1 MB/s) - ‘index.html’ saved [20107]

 

잘된다.

반응형

'기타' 카테고리의 다른 글

TCP 통계  (445) 2020.07.14
Kerberos Setup (KR)  (1401) 2019.08.22
squid proxy  (8) 2018.12.19
reverse proxy 개념  (10) 2018.12.19
Subnet mask 개념  (10) 2018.11.14

사용자의 실수를 방지하기 위해서 설정할 수 있다.

 

Termination Protection이 설정 된경우 아래와 같은 경고 화면이 나오고

Yes, Terminate 버튼이 비활성화 되어있다.

ec2 terminate which protected termination instance

설정은 간단하다

setup menu

 

Yes, Enable 버튼을 클릭한다.

세팅 끝이고

이 인스턴스를 terminated 시키기 위해서는

같은 메뉴에서 Yes, Disable을 클릭하면 된다.

반응형

'Infra' 카테고리의 다른 글

Route53 DNS health check (for Nginx)  (302) 2019.12.20
Setting Logstash amazon_es output  (1111) 2019.11.04
EC2 instance Change Source Dest Check 옵션  (612) 2019.06.28
[EC2] EBS 볼륨 추가하기  (13) 2018.08.16
Cloudwatch와 grafana 연동하기  (15) 2018.08.10

상황

AWS의 market place에서 구매해서 사용하던 기존 openvpn의 사용자를 넘어서게 되어서

추가 openvpn을 구매하고 다시 세팅을 하게 되었다.

 

기존 설정하고 전부 동일하게 맞췄지만 다른 VPC로 통신을 못한다. 

맞춘 설정

  • Routing Table 설정
  • sysctl.conf에 net.ipv4.ip_forward = 1 설정
  • OpenVPN Server에서 넘어온 것을 받아줄 다른 VPC에 OpenVPN Client 세팅 (autologin)

별짓을 다해도 안되었는데 팀장님이 찾아주셨다.

 

설명

EC2 Instaces에서

Networking - Change Source/Dest. Check 옵션

EC2의 탄력적 네트워크 인터페이스에서 원본 또는 대상 확인 변경

 

Default 설정

  • 매뉴얼: 이 속성을 비활성화하면 인스턴스에서 대상이 특별히 해당 인스턴스로 지정되지 않은 네트워크 트래픽을 처리할 수 있습니다.
  • 주고받는 패킷의 src, dst를 체크하고 src가 본인이 아니면 막아버리는 옵션으로 보인다.
  • 좀 해깔리는데 StatusEnabled 인것만 확인하면 된다.

Status Enabled

 

즉, 지금하려는 case 처럼 Routing을 수행하려는 EC2 instance 에서는 이 옵션을 꺼야 한다.

매뉴얼에 나와있는대로 특별히 해당 인스턴스로 지정되지 않은 네트워크 트래픽을 처리해야 하는 상황이기때문.

 

옵션 끄고난 후 화면

Status Disabled

반응형

'Infra' 카테고리의 다른 글

Setting Logstash amazon_es output  (1111) 2019.11.04
EC2 instance prevent termination (KR)  (738) 2019.07.26
[EC2] EBS 볼륨 추가하기  (13) 2018.08.16
Cloudwatch와 grafana 연동하기  (15) 2018.08.10
EC2의 user data 기능 사용하기  (12) 2018.08.08

작업하는 서버는 Virtual Machine이고 Centos 7.3에서 수행함

(hypervisor는 kvm)

 

대쉬보드에서 3.5TB 디스크를 추가한다. (이 부분은 생략)

대쉬보드에서 생성할때 디스크 포맷은 하지 않는다. 

용량이 크니까 여기 업체 것은 꼬박 하루가 걸린다.

[root@seonpapa ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  100G  0 disk 
└─vda1 253:1    0  100G  0 part /
vdb    253:16   0  256G  0 disk [SWAP]
vdc    253:32   0  3.5T  0 disk 

디스크를 ext4로 포맷을 한다.

[root@seonpapa ~]# file -s /dev/vdc
/dev/vdc: data


[root@seonpapa ~]# mkfs -t ext4 /dev/vdc
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
234881024 inodes, 939524096 blocks
46976204 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=3087007744
28672 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done       

[root@seonpapa ~]# file -s  /dev/vdc
/dev/vdc: Linux rev 1.0 ext4 filesystem data, UUID=c477973b-a02a-4eac-aac9-51acd46f1922 (extents) (64bit) (large files) (huge files)


저렇게까지 하고 마운트를 시켰다.

# mount /dev/vdc /truejp/data

[root@seonpapa data]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  100G  0 disk 
└─vda1 253:1    0  100G  0 part /
vdb    253:16   0  256G  0 disk [SWAP]
vdc    253:32   0  3.5T  0 disk /truejp/data


파티션을 생성한다. (gpt로 생성한다.)

[root@seonpapa ~]# parted /dev/vdc

(parted) mklabel gpt                                                      
Warning: The existing disk label on /dev/vdc will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes

                                                              
(parted) unit GB                                                          
(parted) print

                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 3848GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart primary 0 3848
(parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vdc: 3848GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      0.00GB  3848GB  3848GB               primary

(parted) quit                                                             
Information: You may need to update /etc/fstab.

 


[root@seonpapa ~]# lsbkl                                               
-bash: lsbkl: command not found
[root@seonpapa ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0  100G  0 disk 
└─vda1 253:1    0  100G  0 part /
vdb    253:16   0  256G  0 disk [SWAP]
vdc    253:32   0  3.5T  0 disk 
└─vdc1 253:33   0  3.5T  0 part 
vdd    253:48   0  400G  0 disk 


리부팅을 하고 나면 마운트 했던 정보가 사라진다.
/etc/fstab 파일에 내용을 추가한다.

[dre@tjp-db-main ~]$ cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Thu May 15 12:47:18 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/vda1       /                       ext4    defaults        1 1
/dev/vdb       swap                 swap   defaults       0 0
/dev/vdc1      /truejp/data        ext4    defaults       0 0














반응형

+ Recent posts