centos 7 имя пакета по команде

Иногда случаются ситуации когда на одном линукс хосте есть нужная команда, а на другом нет. И непонятно в какой пакет входит эта команда. В таких ситуация следует сначала выяснить файл который вызывает команда, затем по файлу выяснить название пакета.

# which ping
/bin/ping

# rpm -qf /bin/ping
iputils-20160308-10.el7.x86_64

centos 7 kvm install

В последнее время часто приходится поднимать на centos 7 хост виртуализации на базе технологии qemu-kvm. Ничего сложного, но есть некоторые моменты, которые забываются, поэтому опишу их тут, чтобы в будущем было где подглядывать.

Подготовка.

Для того чтобы в виртуалках нормально работала сеть необходимо сковырнуть NetworkManager — иначе сеть в виртуальные машины не попадет

# systemctl stop NetworkManager.service
# systemctl disable NetworkManager.service
Установка.
yum install qemu-kvm libvirt
service libvirtd start

# lsmod | grep kvm
kvm_intel              55432  0 
kvm                   346318  1 kvm_intel

virsh sysinfo
#выдают XML как и должен

yum install seabios 
#необходимо чтобы появился нужный bios

chmod 666 /dev/kvm
#по умолчанию встают неправильные права
Создание хранилища.

Хранилища могут быть разными. Сейчас меня интересует самый простой вариант — папка в файловой системе сервера.

# mkdir /home/vm
# virsh pool-define-as guest_images_dir dir - - - - "/home/vm" 
Пул guest_images_dir определён

virsh pool-list --all 
#Хранилище создано но не запущено

virsh pool-build guest_images_dir 
virsh pool-start guest_images_dir 
virsh pool-autostart guest_images_dir 

#проверить
virsh pool-info guest_images_dir
Настройка сети.

Есть много вариантов настройки, но у меня пока используется только бридж. Идея в том, что необходимо создать виртуальный бридж интерфейс, перенести настройки ip из физического интерфейса в новый виртуальный. В физический интерфейс добавить MASTER=br0 (SLAVE=br0 если участвуют больше одного интерфейса)

DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="static"
IPADDR=XXX.XXX.XXX.XXX
GATEWAY=XXX.XXX.XXX.XXX
DNS1="XXX.XXX.XXX.XXX"
DNS2="XXX.XXX.XXX.XXX"
MTU="1500"
NETMASK="255.255.255.0"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
NAME="System br0"


DEVICE="eth0"
BOOTPROTO="none"
HOSTNAME="hostname"
HWADDR="XX:XX:XX:XX:XX:XX"
MTU="1500"
ONBOOT="yes"
TYPE="Ethernet"
NAME="System eth0"
MASTER=br0
BRIDGE="br0"

проверить и поправить iptables (если используется)

brctl show

iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
service iptables save
service iptables restart