[CentOS] 7.x KVM 윈도우10 설치 동작 안함



CentOS 7.x 버전에서는 Windows 10 부팅이 안되는가 보네요~


CPU 가 카비레이크(Kaby Lake) i7-7700 인데 아무리 시도해도 아래 화면에서 멈춘 상태로 더 이상이 진행이 안되는군요~



virt-install \

--name Win10 \

--vcpus 2 \

--memory 4096 \

--os-type windows \

--os-variant win10 \

--disk path=/var/lib/libvirt/boot/Win10_1803_Korean_x64.iso,device=cdrom,bus=ide \

--disk path=/var/lib/libvirt/images/virtio-win-0.1.160.iso,device=cdrom,bus=ide \

--disk path=/var/lib/libvirt/images/Win10.img,size=40,bus=virtio \

--network network=default,model=virtio \

--graphics vnc,port=5901,listen=0.0.0.0 \

--sound default


Gnome desktop 에서 Virtual Machine Manager 로 시도해도 마찬가지입니다.


[CentOS] 7.x KVM 윈도우10 설치 동작 안함


VirtualBox 에서 미리 설치한 VHD 를 변환해서 올려도 부팅이 안되는 걸 보니까 아무래도 7.x 버전의 버그 같습니다~



혹시 아시는분 계시면 알려주세요~



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[리눅스] CPU 정보를 알 수 있는 명령어 LSCPU



CPU 종류는 뭔지 그리고 코어랑 스레드 갯수, 가상화는 지원하는지 등을 알아보려면 lscpu 명령어를 실행해보세요~


# lscpu

Architecture:          x86_64

CPU op-mode(s):        32-bit, 64-bit

Byte Order:            Little Endian

CPU(s):                8

On-line CPU(s) list:   0-7

Thread(s) per core:    2

Core(s) per socket:    4

Socket(s):             1

NUMA node(s):          1

Vendor ID:             GenuineIntel

CPU family:            6

Model:                 158

Model name:            Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz

Stepping:              9

CPU MHz:               900.000

CPU max MHz:           3800.0000

CPU min MHz:           800.0000

BogoMIPS:              7200.00

Virtualization:        VT-x

L1d cache:             32K

L1i cache:             32K

L2 cache:              256K

L3 cache:              8192K

NUMA node0 CPU(s):     0-7

Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch intel_pt ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp spec_ctrl intel_stibp flush_l1d


그냥 단순히 cpu 종류만 확인하려면 cat /proc/cpuinfo | grep name 하면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[CentOS] 7.x KVM virt-install CentOS



리눅스 서버에 가상화 VPS 를 설치하는 방법입니다~


그런데 시간이 너무 오래 걸리는 듯 하네요~



예제1)


virt-install \

--name CentOS7 \

--vcpus 2 \

--memory 4096 \

--hvm \

--os-type linux \

--os-variant rhel7 \

--disk path=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1810.iso,device=cdrom,bus=ide \

--disk path=/var/lib/libvirt/images/CentOS7.qcow2,format=qcow2,size=10,bus=virtio \

--graphics vnc,port=5900,password=vnc1234,listen=0.0.0.0 \

--sound default





예제2)


virt-install \

--name CentOS7 \

--vcpus sockets=1,cores=2,threads=2 \

--memory 2048 \

--os-type linux \

--os-variant rhel7 \

--disk path=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1810.iso,device=cdrom,bus=ide \

--disk path=/var/lib/libvirt/images/CentOS7.img,size=10 \

--graphics vnc,listen=0.0.0.0,port=5901,password=vnc1234


사전에 미리 yum install qemu-kvm libvirt virt-install virt-manager virt-viewer 를 설치하여야 합니다.


로컬의 Virtual Machine Manager 로 해당 서버에 접속하고 비밀번호는 vnc1234 를 입력하면 됩니다.



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 7.x Failed to start Virtualization daemon



가상화 서버를 사용하려고 했더니 아래와 같이 에러가 나면서 안되더군요~


폭풍 검색을 해서 이것저것 다 해봐도 안되더니 yum update 한방에 해결이 되네요~ ㅎ


[root@vps ~]# systemctl start libvirtd

Job for libvirtd.service failed because the control process exited with error code. See "systemctl status libvirtd.service" and "journalctl -xe" for details.


[root@vps ~]# systemctl status libvirtd

● libvirtd.service - Virtualization daemon

   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)

   Active: failed (Result: start-limit) since Thu 2018-12-06 11:12:39 KST; 4s ago

     Docs: man:libvirtd(8)

           https://libvirt.org

  Process: 30787 ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS (code=exited, status=3)

 Main PID: 30787 (code=exited, status=3)

    Tasks: 2 (limit: 32768)

   CGroup: /system.slice/libvirtd.service

           ├─1795 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper

           └─1796 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper


Dec 06 11:12:39 example.com systemd[1]: Failed to start Virtualization daemon.

Dec 06 11:12:39 example.com systemd[1]: Unit libvirtd.service entered failed state.

Dec 06 11:12:39 example.com systemd[1]: libvirtd.service failed.

Dec 06 11:12:39 example.com systemd[1]: libvirtd.service holdoff time over, scheduling restart.

Dec 06 11:12:39 example.com systemd[1]: start request repeated too quickly for libvirtd.service

Dec 06 11:12:39 example.com systemd[1]: Failed to start Virtualization daemon.

Dec 06 11:12:39 example.com systemd[1]: Unit libvirtd.service entered failed state.

Dec 06 11:12:39 example.com systemd[1]: libvirtd.service failed.


# libvirtd -v

...

error : virModuleLoadFile:53 : internal error: Failed to load module '/usr/lib64/libvirt/storage-backend/libvirt_storage_backend_rbd.so': /usr/lib64/libvirt/storage-backend/libvirt_storage_backend_rbd.so: undefined symbol: rbd_diff_iterate2


주기적으로 yum update 를 해야겠습니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[아파치] 홈페이지 아이피로 접근시 차단



도메인이 아닌 IP 로 접근시 차단하는 방법입니다.


/etc/httpd/conf.d/ 폴더에 아래내용으로 파일을 생성하고 아파치를 재시작하면 됩니다.


<VirtualHost *:80>

    ServerName 192.168.1.1

    <Location />

        <IfModule mod_authz_core.c>

            # Apache 2.4

            <RequireAny>

                Require all denied

                Require ip 127.0.0.1

            </RequireAny>

        </IfModule>

        <IfModule !mod_authz_core.c>

            # Apache 2.2

            Order Deny,Allow

            Deny from All

            Allow from 127.0.0.1

        </IfModule>

    </Location>

</VirtualHost>


192.168.1.1 을 서버의 아이피로 변경하면 됩니다.


Require ip 127.0.0.1 은 허용아이피인데 없어도 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[리눅스] vnstat eth0 No such file or directory



vnstat 에서 네트워크 카드명이 디폴트 eth0 가 아닌경우 아래와 같은 에러가 나옵니다.


# vnstat -d

Error: Unable to read database "/var/lib/vnstat/eth0": No such file or directory



ifconfig 에서 확인한 네트워크 정보를 보고 아래 파일을 수정하면 됩니다.


# vi /etc/vnstat.conf


# default interface

#Interface "eth0"

Interface "enp3s0"


수정 후에는 systemctl restart vnstat 을 해주세요~


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[리눅스] 유저 홈페이지 Data 및 MySQL DB 백업



User 홈페이지 및 데이터베이스를 백업하는 쉘스크립트입니다.


7일이 경과한 백업파일을 자동으로 지워줍니다.


크론에 등록하고 사용하면 됩니다.


#!/bin/sh


DB_ROOT_ID="root"

DB_ROOT_PW="DB비밀번호"

TODAY=`date +%Y%m%d`

DELETE_DATE=`date +%Y%m%d --date='7 days ago'`

DAY_OF_WEEK=`date +%u`

HOME_DIR="/home"

BACKUP_DIR="/백업경로"

ZIP_PW="압축비밀번호"


echo "

Start : "`date` >> /root/log/backup-users.log



for USER_NAME in $(ls $HOME_DIR | grep -v "centos") ; do

if [ -d "$HOME_DIR/$USER_NAME" ] ; then

    USER_BACKUP_DIR="${BACKUP_DIR}/${USER_NAME}"


    if [ ! -d "$USER_BACKUP_DIR" ] ; then

        mkdir -m 700 $USER_BACKUP_DIR

    fi


    if [ ! -d "$USER_BACKUP_DIR/$TODAY" ] ; then

        mkdir -m 700 $USER_BACKUP_DIR/$TODAY

    fi

    USER_BACKUP_DIR="${BACKUP_DIR}/${USER_NAME}/${TODAY}"


    DB_BACKUP_NAME="${USER_BACKUP_DIR}/${USER_NAME}.sql.gz"

    mysqldump -u${DB_ROOT_ID} -p${DB_ROOT_PW} ${USER_NAME} --opt --lock-tables=false | gzip > ${DB_BACKUP_NAME}

    sleep 3

    zip -0P$ZIP_PW $DB_BACKUP_NAME.zip $DB_BACKUP_NAME

    sleep 3

    rm $DB_BACKUP_NAME


    sleep 5

    USER_DIR="${HOME_DIR}/${USER_NAME}"

    DATA_BACKUP_NAME="${USER_BACKUP_DIR}/${USER_NAME}_data.tar.gz"

    cd ${USER_DIR}

    tar czfp $DATA_BACKUP_NAME ./www

    sleep 3

    zip -0P$ZIP_PW $DATA_BACKUP_NAME.zip $DATA_BACKUP_NAME

    sleep 3

    rm $DATA_BACKUP_NAME

    cd


    USER_BACKUP_DEL_DIR="${BACKUP_DIR}/${USER_NAME}/${DELETE_DATE}"

    if [ -d "$USER_BACKUP_DEL_DIR" -a "$USER_BACKUP_DEL_DIR" != "" ] ; then

        rm -rf ${USER_BACKUP_DEL_DIR}

    fi

    sleep 5

fi

done


echo "End User Backup : "`date` >> /root/log/backup-users.log


홈페이지 경로는 /home/유저계정/www 기준으로 되어있으니 자신의 환경에 맞게 수정하세요~


파일 첨부합니다.


backup-users.sh.txt


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

CentOS 웹서비스 start stop 쉘스크립트



굳이 아파치랑 NGINX 를 시작 및 종료를 해주는 스크립트가 필요할까 싶지만, Let's encrypt 인증서 갱신시 웹서비스 포트가 사용중이면 갱신이 안되는 문제점이 있습니다.


pstree 로 웹서비스가 완전히 종료 되었는지 확인하고 종료되는 쉘스크립트입니다.


무한루프에 빠질수도 있기때문에 20초로 제한걸었습니다.


#!/bin/sh



CMD="$1"

LOGFILE="/root/web-service.log"


if [ -e "/usr/bin/systemctl" ] ; then

    WEBCMD1="/usr/bin/systemctl $CMD nginx"

    WEBCMD2="/usr/bin/systemctl $CMD httpd"

else

    WEBCMD1="/sbin/service nginx $CMD"

    WEBCMD2="/sbin/service httpd $CMD"

fi


if [ "$CMD" == "start" ] ; then

    $WEBCMD1 >> $LOGFILE

    $WEBCMD2 >> $LOGFILE

    for i in {1..20}; do

        PSD=`pstree | grep httpd | wc -l`

        if [ $PSD -eq 1 ] ; then

            echo "start" >> $LOGFILE

            break;

        else

            echo "not run" >> $LOGFILE

            sleep 1

        fi

    done

elif [ "$CMD" == "stop" ] ; then

    $WEBCMD1 >> $LOGFILE

    $WEBCMD2 >> $LOGFILE

    for i in {1..20}; do

        PSD=`pstree | grep httpd | wc -l`

        if [ $PSD -eq 0 ] ; then

            echo "stop" >> $LOGFILE

            break;

        else

            echo "running" >> $LOGFILE

            sleep 1

        fi

    done

else

    exit

fi


20초 동안에 안되는 경우는 거의 없겠지만 사용자가 있다거나 그러면 정상동작하지 않을 수도 있습니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

LETSENCRYPT SSL 인증서 자동갱신 쉘스크립트



Let's encrypt 무료 SSL 인증서는 유효기간이 90일입니다.


거의 3달 만에 한번씩 갱신을 해주어야 하는 불편함이 있지요~


아래 처럼 스크립트로 만들어서 크론으로 자동갱신하면 편리합니다.



#!/bin/sh


TODAY=`date +%Y%m%d%H`

LOG_FILE="/root/letsencrypt.txt"

KEY_PATH="/etc/letsencrypt/live"

KEY_FILE="cert.pem"

EMAIL="email@example.com"

DOMAINS="

    www.example.com

    "


if [ -e "/usr/bin/letsencrypt" ] ; then

    LETSENCRYPT="/usr/bin/letsencrypt"

else

    LETSENCRYPT="/root/letsencrypt/letsencrypt-auto"

fi


for DOMAIN in $DOMAINS ; do

    CERT_PATH="$KEY_PATH/$DOMAIN/$KEY_FILE"

    if [ -e "$CERT_PATH" ] ; then

        C_DATE=`openssl x509 -in $CERT_PATH -text -noout | grep After | awk -F ' : ' '{print $2}'`

        R_DATE=`date +%Y%m%d%H --date="$C_DATE -1 days"`

        if [ "$TODAY" -ge "$R_DATE" ] ; then

            echo "# $DOMAIN renew date : "`date` >> $LOG_FILE

            /root/bin/web-service.sh stop

            $LETSENCRYPT renew >> $LOG_FILE

            /root/bin/web-service.sh start

        fi

    else

        echo "# $DOMAIN create date : "`date` >> $LOG_FILE

        /root/bin/web-service.sh stop

        $LETSENCRYPT certonly --standalone --agree-tos -m $EMAIL -d $DOMAIN

        /root/bin/web-service.sh start

    fi

done


web-service.sh 스크립트는 자신의 환경에 맞게 직접 만드셔야 합니다.


아파치랑 nginx 를 같이 사용한다면 둘다 서비스를 종료했다가 다시 재시작 해주는 스크립트를 만들면 됩니다.


https://ivps.tistory.com/630 여기를 참고하면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

저사양 VPS 스왑메모리 생성 스크립트



메모리 용량이 적은 사양의 VPS 를 개설했더니 스왑메모리가 0으로 잡혀있네요~


스왑메모리가 0으로 되어 있으면 yum update 또는 install 등 서버 운영 중간에 에러가 잘 발생합니다.


mkdir -p /var/spool/swap

dd if=/dev/zero of=/var/spool/swap/swapfile bs=1M count=1024

chmod 600 /var/spool/swap/swapfile

mkswap /var/spool/swap/swapfile

swapon /var/spool/swap/swapfile

swapon -s

echo "/var/spool/swap/swapfile none swap defaults 0 0" >> /etc/fstab


용량을 1기가로 하려면 위 명령어를 그대로 붙여넣으면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,